我使用QT Creator在Linux上开发了命令行(非GUI)C程序,该程序内部使用gdb作为其调试器.当我使用Visual Studio在Windows上调试该程序时,它报告说它在分配的内存范围之外进行写操作(尽管它没有在发生的确切时间报告冲突,因此仍然很难跟踪).我最终设法在代码中找到一个位置,其中malloc调用分配的内存太少,这解决了问题.
但是,令我困扰的是,从未在Linux端检测到此问题.在Linux上是否有任何启用此检测功能的开关或其他工具?
解决方法:
有许多适用于Windows和Linux的代码内存储器验证器.检查Wikipedia以获取其列表.但是,大多数Linux用户使用Valgrind作为内存调试的最终工具.