我知道如何使用PyCharm的调试器,但这只是加深了我对它如何完成与Python解释器如此紧密耦合的好奇。
cPython本身埋有某种解释器挂钩吗?还是PyCharm以某种方式复制了源代码,对代码进行了分析,然后执行了它?
答案 0 :(得分:3)
由于@unholySheep,我能够从PyDev.Debugger上的github src返回到sys.settrace,这导致了本周Python模块在settrace上的发布。
一旦跟踪脚本具有堆栈框架,检查框架的堆栈内容或使用code/exec/eval
在上下文中运行“监视”语句可能是一项不平凡的任务。至于断点,这只是微不足道的,因为这只是匹配框架的行号和文件路径的任务。