最近我遇到了段錯誤問題,它在調用delete方法時被擊中。我已深入檢查了代碼,並消除了刪除空指針,多次刪除或超出限制的可能性(分配的內存足夠大以容納之後寫入的內容)。這個問題可以被複制,每次它在同一個地方發生段錯誤。段錯誤代碼的可能原因是什麼
我想盡辦法可能會導致此問題。我不知道是否有可能得到錯誤代碼的一些線索,我得到,如: - 段錯誤的XXXXXXXXXXXXXX撕裂XXXXXXXXXXXXXX RSP XXXXXXXXXXXXXX錯誤4
我搜索過網了相當長的時間,只得到有用以下信息來自stackoverflow: -
「錯誤代碼只是頁面錯誤的體系結構錯誤代碼,似乎是特定於體系結構的,它們通常記錄在內核源代碼的arch/*/mm/fault.c中。 Linux/arch/i386/mm/fault.c的副本具有以下error_code的定義:
bit 0 == 0 means no page found, 1 means protection fault
bit 1 == 0 means read, 1 means write
bit 2 == 0 means kernel, 1 means user-mode
「
這是我的問題: - 錯誤代碼4(我的平臺是RHEL5 64位,x86_64)的可能原因是什麼?有什麼辦法可以從錯誤代碼中知道可能的原因嗎?
有關如何診斷這類問題的任何其他建議也受到讚賞!
在'valgrind'下運行你的程序。 –
刪除空指針不是問題。 – ldav1s