我知道如何使用pycharm的调试器,但这只加深了我对它如何完成与python解释器紧密耦合的任务的好奇心。
cpython本身是否有某种无畏的钩子,或者pycharm是否以某种方式复制源代码,插入代码,然后执行它?
多亏了“非我”,我可以从Gythub Src在PyDeV上进行调试。 sys.settrace 这导致了一篇关于本周python模块的文章 settrace 。
一旦跟踪脚本拥有堆栈帧,检查帧的堆栈内容和/或使用 code/exec/eval 在上下文中运行“watch”语句。至于断点,这将是微不足道的,因为它只是一个匹配帧的行号和文件路径的任务。
code/exec/eval