1
Im做測試的程序我寫了學校,我得到了一個分段錯誤這個味精如果另一個指針擁有相同的地址,我可以使用Valgrind或Gdb進行檢查嗎?
double free or corruption (out)
後,我試圖釋放一個ADRESS。
所以我想我已經發布了這個地址之前,所以我的問題是 - valgrind/gdb可以告訴我,如果地址是由兩個不同的指針指出?或給出一個地址他們可以告訴我有多少指針指向它?
Im做測試的程序我寫了學校,我得到了一個分段錯誤這個味精如果另一個指針擁有相同的地址,我可以使用Valgrind或Gdb進行檢查嗎?
double free or corruption (out)
後,我試圖釋放一個ADRESS。
所以我想我已經發布了這個地址之前,所以我的問題是 - valgrind/gdb可以告訴我,如果地址是由兩個不同的指針指出?或給出一個地址他們可以告訴我有多少指針指向它?
Valgrind的會告訴你,你想dealocate第二次區塊和您最初釋放它:
產生這種==21347== Invalid free()/delete/delete[]/realloc()
==21347== at 0x4C2A37C: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==21347== by 0x4005CA: main (test.c:7)
==21347== Address 0x51dc040 is 0 bytes inside a block of size 1,000 free'd
==21347== at 0x4C2A37C: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==21347== by 0x4005BE: main (test.c:6)
代碼:
#include <stdlib.h>
int main()
{
char * x = malloc(1000);
free(x);
free(x);
}
不一定是雙重釋放或**腐敗**,如果您需要幫助,請發佈代碼。 –
@iharob umm它的一個大型項目在這裏發佈,但讓我們說它是雙重免費的,有沒有辦法做到我問 – nadavgam