| 339 | } |
| 340 | |
| 341 | remote_addr_t |
| 342 | AbstractProcessManager::findInterpreterStateFromPointer(remote_addr_t pointer) const |
| 343 | { |
| 344 | LOG(DEBUG) << "Trying to determine PyInterpreterState directly from address " << std::hex |
| 345 | << std::showbase << pointer; |
| 346 | remote_addr_t interp_state; |
| 347 | copyObjectFromProcess(pointer, &interp_state); |
| 348 | if (!isValidInterpreterState(interp_state)) { |
| 349 | LOG(INFO) << "Failed to determine PyInterpreterState directly from address " << std::hex |
| 350 | << std::showbase << pointer; |
| 351 | return (remote_addr_t)NULL; |
| 352 | } |
| 353 | return interp_state; |
| 354 | } |
| 355 | |
| 356 | remote_addr_t |
| 357 | AbstractProcessManager::findInterpreterStateFromPyRuntime(remote_addr_t runtime_addr) const |