我有一大堆整天都在運行的代碼。刪除[]失敗,如何找出原因?
delete [] p
回溯追蹤(用gdb):
0x00007f4f709f2885 in raise() from /lib64/libc.so.6
0x00007f4f709f4065 in abort() from /lib64/libc.so.6
0x00007f4f70a2f7a7 in __libc_message() from /lib64/libc.so.6
0x00007f4f70a350c6 in malloc_printerr() from /lib64/libc.so.6
我想找出導致刪除失敗: 每週一次,它試圖釋放一些指針時崩潰重複的刪除或者是其他東西。 我該怎麼做?
如果你希望人們能夠幫助你,第一步就是實際發佈代碼。如果一般的「我如何調試這種問題」的建議是你想要的,我會開始記錄每次刪除被調用,誰叫它何時和爲什麼。並開始梳理,找到bug的來源。 – Oren
你將需要展示更多的代碼。你也可以試試valgrind。 – goji
我建議通過valgrind運行你的程序,希望找到你的bug。 – Grizzly