2013-01-11 16 views
1

我创建了一个c程序,它崩溃(分段错误)。我想使用valgrind查找错误,但是当我运行它时:如何使valgrind完全重现错误?

valgrind -v ./executable 

该程序不会崩溃。当我使用gdb运行它时,它仍然崩溃。

如何设置valgrind来重现错误,如gdb?

+9

http://en.wikipedia.org/wiki/Heisenbug – ouah

+0

@ouah,所以这是不可能的? – kaspersky

+1

你也许可以在gdb中找到错误。 – djechlin

回答

2

如何设置valgrind来重现错误,如gdb?

你不应该和事实上你不能。

这是因为程序在Valgrind的环境下运行时与本机运行时略有不同。这是Valgrind的工作方式,请参阅Valgrind FAQ

你真正需要的是修复所有Valgrind错误,特别是无效的读取。