「二重解放または破損」エラーの追跡
C プログラムで「二重解放または破損」エラーが発生した場合、ソースを追跡します。問題は難しい場合があります。 print ステートメントは効果的ではないかもしれませんが、GDB は強力な解決策を提供します。
エラー追跡に GDB を利用する
エラー検出を容易にするには、MALLOC_CHECK_ 環境変数を 2 に設定します。 glibc のエラー耐性のある malloc バリアントをアクティブにします。このバージョンでは、二重解放の実行時にプログラムが直ちに中止されます。
GDB 内で次のコマンドを実行します。
set environment MALLOC_CHECK_ 2
その後、プログラムを実行します。 GDB は二重解放の時点で実行を終了し、問題のある free() 呼び出しをバックトレースに表示します。
追加リソース
トラブルシューティングの詳細については、「 「二重解放または破損」エラーについては、ここから入手できる malloc() のマニュアル ページを参照してください:
man malloc
以上がGDB は C の「二重解放または破損」エラーのデバッグにどのように役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。