反正有从在gdb核心文件

发现一个的PyObject *的值蟒
有帮助吗?

解决方案

这是大量的工作,但当然是可以做到的,特别是如果你把所有的符号。看看为Python(以及编译选项中使用来构建它)的特定版本的头文件:他们定义的PyObject的结构,其中包括,首先,一个指针类型。宏的大量使用,所以你可能需要再次运行来源了Python的编译,用完全相同的标志,但在另外一个-E预处理后停下来,所以你可以参考具体的C代码进行的位你看到在核心转储。

A型对象有,在许多其他事情,一个字符串(字符数组)这是它的名字,并从它可以推断究竟该类型的对象包含 - 是它的内容直接,或者一些内容(例如作为一个长度,即数项)和一个指向实际的数据。

我已经做了这样的超先进的验尸调试几次(从所涉及的Python版本,所有的准备预处理源&C的非常精确的知识),每次和我花了两天(分别为我仍然是一个自由职业者和按小时收费的,如果我有投标这样的任务,我会说至少20小时 - 我不便宜的每小时收费 - !)

督察,这是值得的,只有当它真的真的了一些非常昂贵的泡菜的唯一途径。从积极的一面,它会教你更多关于Python的内部比你想过在那里,即使是记忆的来源每行之后。祝你好运,你需要一些!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top