| 1303 | } |
| 1304 | |
| 1305 | remote_addr_t |
| 1306 | AbstractProcessManager::findPyRuntimeFromElfData() const |
| 1307 | { |
| 1308 | LOG(INFO) << "Trying to resolve PyInterpreterState from Elf data"; |
| 1309 | SectionInfo section_info; |
| 1310 | if (!getSectionInfo(d_main_map.value().Path(), ".PyRuntime", §ion_info)) { |
| 1311 | LOG(INFO) << "Failed to resolve PyInterpreterState from Elf data because .PyRuntime section " |
| 1312 | "could not be found"; |
| 1313 | return 0; |
| 1314 | } |
| 1315 | remote_addr_t load_addr = getLoadPointOfModule(d_analyzer->getDwfl(), d_main_map.value().Path()); |
| 1316 | if (load_addr == 0) { |
| 1317 | LOG(INFO) << "Failed to resolve PyInterpreterState from Elf data because module load point " |
| 1318 | "could not be found"; |
| 1319 | return 0; |
| 1320 | } |
| 1321 | return load_addr + section_info.corrected_addr; |
| 1322 | } |
| 1323 | |
| 1324 | remote_addr_t |
| 1325 | AbstractProcessManager::findInterpreterStateFromElfData() const |
nothing calls this directly
no test coverage detected