更新

2024-07-05 本书已经出版 image 由于本库的草稿是我之前一个人写的,所以质量和正确性都不如经过两位作者和出版社编辑审阅和校正过的书稿。 如果你想阅读更加完善的版本,推荐购买正版书籍。

内存调试工具

如果初始调查没有结论,很多时候是这样的,我们应该怎么继续呢?一个普遍的方式是根据搜集到的信息在一个受控的环境重现问题。如果问题是可重现的,我们可以更近地观察问题和用各种方式指导程序。一个完整的审阅代码可能引出内存损坏的新理论。那么你就可以在调试器下重跑程序,在即将被损坏的内存块设置数据断点。这可能不具有可行性,因为被损坏的内存块的地址每次程序运行的时候可能会不一样。如果重现问题的时机是很重要的,那么调试可能会有所谓的海森堡效应,即调试器带来的失真会改变程序的行为和防止问题的重现。(XT,前几天同事就遇到了这样的问题)。另外,有需要各种定制的工具用来尽可能早的检测内存损坏而不是允许它们传播得更远。在本节中,我们将会看到一些这样的工具和它们的实现