我的程序(它是一个smtp服务器程序,由jmeter测试)在由valgrind运行时运行没有任何问题。 但最终失败了(得到SIGABRT),如果没有valgrind运行或在'gdb'调试器中运行。
我已经测试了所有valgrind的工具(memcheck,helgrind,drd,massif),但没有人报告任何问题。我没有发现任何内存泄漏(由mtrace()检查)。
我有以下内容:
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb7101b70 (LWP 1639)]
0xb776d416 in __kernel_vsyscall ()
回溯显示通过运行更改运行的各个位置。问题总是暗示malloc()或free()(并且始终与字符串(char数组)相关)
问题是:如果valgrind和mtrace没有显示任何问题并且程序可以在无限制的jmeter测试循环中没有停止(在valgrind内)运行,我怎么能找到问题呢?