2

对于调试 Windows 上的无效内存访问的好方法,我将不胜感激。作为一名 Linux 开发人员,我是 Valgrind 的忠实粉丝。甚至 Duma 和 eFence 也是非常有效的工具。但是在 Windows 上我完全迷失了(WinXP/VS2008)。我尝试了很多工具,试图将我的程序与杜马联系起来,但没有成功。

以下是我遇到的错误的症状:

  • 在某些特定配置上的发布模式下崩溃(仅我的数据大小发生变化)
  • 当它在 Release 模式下不崩溃时,报告中的测试名称将替换为随机字符。(我正在使用 Boost.Test)
  • 调试模式下什么都没有,一切顺利

这绝对听起来像是某处的无效写入/读取,但在发布模式下调试是不可能的,我需要在调试模式下重现崩溃。重新定义新的运算符并尝试模仿 eFence/Duma 的行为是我最好的选择,但我在覆盖它时遇到了麻烦。

到目前为止,我尝试过:

  • 记忆博士
  • 标志
  • 应用验证器
  • Duma(不能覆盖 malloc/etc..)

如果有人可以在那里给我小费,我将不胜感激,因为我已经有一段时间没有尝试解决这个问题了。

提前致谢。

4

0 回答 0