したがって、glibcがクラッシュすると、*glibcが検出された*クラッシュメッセージが表示されます。次に、次のような一連のバックトレースを出力します。
*** glibc detected *** ./odin: free(): invalid pointer: 0xbfba4444 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(+0x6b161)[0xb75f9161]
/lib/tls/i686/cmov/libc.so.6(+0x6c9b8)[0xb75fa9b8]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xb75fda9d]
/usr/lib/libstdc++.so.6(_ZdlPv+0x1f)[0xb77da2ef]
すべて順調ですが、他のケースでは、backtrace()を実行してから、addr2lineへのシステムコールを使用して、代わりに関数内の実際のポイントを出力しています。しかし、それがglibcのクラッシュである場合、私が呼び出したシグナルハンドラーをバイパスすることをやめます。
これらのglibcのクラッシュに対抗する方法はありますか?