delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

28 Oct 2006

调试进行时

昨天深夜被李逵同学的电话叫醒,被告知新上线的一个Python应用发生了一个回归问题——一个使用了C模块的程序经常自己退出。

由于这个C模块已经几年没有改过了,加上没有coredump文件,因此调试起来非常困难。另一方面,我们的代码也是一行没改,因此很难确定到底是什么出了问题。李逵坚持认为这个问题是由于Python的编译配置不当引起的。天地良心……编译配置就是之前的配置,不过我还是想办法重编了一套,后来听这家伙说,他没有选pymalloc。

在Google上面查了一下,发现有人说,pymalloc会「break some applications that did not follow the API」。晕了,这个问题是Python 2.1时候的问题,不过无论如何,急病乱投医,改改看。

结果发现还是有问题。从目前已经发现的故障现象看,这个问题并不是可以可靠重现的,更大的可能是某些程序以某种方式在Python解释器中打出了「内伤」,并在一定的条件下发作。这个问题确实需要仔细跟一跟,但是第一步,无论如何要把重现条件找到。大家有Python解释器调试经验的,一起交流一下?