【发布时间】:2011-12-10 04:39:05
【问题描述】:
1) 我想使用 Python C API 中的分析函数在 Python 解释器从特定函数返回时捕获它。
2) 我想暂停 python 解释器,将执行发送回在我的 C++ 程序中调用解释器的函数,最后将执行返回给 python 解释器,在它停止的代码行上启动它。我想在执行属于 python 的时间之间同时维护全局变量和局部变量。
第 1 部分我已经完成。第 2 部分是我的问题。我不知道要保存什么以便可以返回执行,也不知道如何根据已保存的数据返回执行。
从我可以从 python API 文档中获得的信息,我将不得不保存执行帧的某些部分,但我没有找到任何东西。一些额外的问题... PyFrameObject 究竟包含什么?令人惊讶的是,python API 文档从未解释过。
【问题讨论】:
-
你试过用
SIGSTOP/SIGCONT看吗? -
我的 Python 解释器与我的 C++ 程序在同一个线程中运行...我希望在该线程中传递执行,而不是停止整个过程...也许我不完全理解SIGSTOP 和 SIGCONT 会对我的程序产生什么影响?如果有,请解释。
标签: c++ python api profile execution