2013-01-11 17 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錯誤,特別是無效的讀取。