インクルード ファイルを含むディレクトリだけでなく、ユーザーからのファイルを入力として受け入れる C++ コードを実行しています。私の C++ コードは、特定の入力ファイルで完全に正常に動作しますが、セグメンテーション違反が発生する特定の例外があります。セグメンテーション障害。この問題をデバッグするためにdddデバッガを使用しています。dddですべてを試しました。コアをダンプし、コアを使用してコードをトレースバックします。実際には、エラーを引き起こしているlneを取得していますが、このエラーは別の場所に移入されています.
セグメンテーション違反を解決するための相対的な情報を探しているときに、このチュートリアルに行き着きました。このチュートリアルでは、objdump を使用してセグメンテーション違反をトレースする方法を簡単に説明しています。次のコマンドを実行します。
objdump -CDl ./binary file . output file
、
しかし、このコマンドはほぼ15分間続き、エラーの原因となっているポインターを見つけようとしたとき(ポインターはdddおよびdmesg | tailコマンドで見つかりました)。
エラーは入力ファイルが原因であるため、コードがエラーを生成しない方法がわかりません。コードがその入力ファイルの特定の部分を通過できないことを意味します。
だから、objdumpでコードバイナリを実行して、エラーの原因となっているポインターを見つけるだけで正しいことをしています
grep -n -A 100 -b 100 ./mydump
これについて助けが必要です