1. ホーム

glibc detected *** corrupted double-linked list: エラーの原因は3つ考えられます。

2022-02-28 14:45:34
<スパン 大きなマルチスレッドプログラムが実行中にクラッシュし、画面がこれに当たる。 



<スパン



*** glibc detected *** corrupted double-linked list: 0xb78381d8 *** 



<スパン バックトレース: ====================================== 



/usr/lib/libc.so.6[0xb7781d3b] 



/usr/lib/libc.so.6[0xb7781e77] 



/usr/lib/libc.so.6[0xb7782d50] 



/usr/lib/libc.so.6(malloc+0x71)[0xb7783f2c] 



<スパン この後のコールスタックは、自作のプログラムから関数を呼び出すものです





<スパン 2つの理由 



<スパン 1.  



    int* a = new int(10); 



    を削除してください。 



    delete a; // <---- this 



<スパン



2. int* a; 



    delete a; // <---- this 



<スパン



<スパン そしてもうひとつ 



<スパン



    char s[10]; 



    int* a = new int(10); 



    sprintf(s, "1234567890"); 



    delete a; // a は前のものに上書きされます。