【发布时间】:2011-12-18 03:45:56
【问题描述】:
我正在尝试使用 LD_PRELOAD 来拦截 PyDict_New 函数。我已经验证 this recipe 在 python 解释器中与 getpid 一起工作,而我已经 adapted it to use PyDict_New 代替,但它根本不像我预期的那样工作。虽然我清楚地分配了字典,并且必须使用这个函数,但我的覆盖没有被调用。
我做错了什么?
背景:我正在尝试在一个非常大的系统中调试问题。我发现有一个引用计数错误的字典。我知道字典第一次分配的位置,以及问题出现的位置,但我很确定计数在某个中间时间变坏了,并且简单的代码跟踪不会做,因为字典被缓存和重用(通过 PyDict_New)由 gc 系统。
【问题讨论】:
标签: python c dlsym ld-preload