过去几周我一直在努力寻找一个让我的应用程序崩溃的非常困难的错误。首先,应用程序在分配 std::string 时崩溃,然后在释放局部变量期间崩溃。
仔细检查代码后,没有理由在这些位置崩溃;但是,它总是在尝试释放无效指针(即指向无效内存的指针)时崩溃。而且我不知道为什么这个指针没有指向正确的位置。
我怀疑这个问题与某种内存损坏问题或指针损坏问题有关。问题是我无法在视觉上追踪它......但是。我不知道从哪里开始查看代码,并且有数千行代码要经过,所以这似乎不是解决问题的现实方法。
所以Valgrind来了……
我多次依赖的工具来查找代码中可能导致此类崩溃的问题。然而,这一次却是空手而归!当问题发生时,我在 valgrind 中看不到任何错误,因此我问这个问题的原因。
是否有任何其他应用程序可以补充 valgrind 并帮助查找代码中可能导致上述崩溃的问题?
谢谢!