6

セグメンテーション違反をデバッグするにはどうすればよいですか?

基本的には次のようになります。

サーバーをバックグラウンドで実行しています。./server &

次に、クライアントを実行します。./client

正しいユーザー名とパスワードでサーバーにログインしようとすると、すべて問題ありませんが、無効なユーザーとパスワードを入力すると、セグメンテーション違反が発生します。

セグメンテーション コア ダンプの原因となる実際のエラーをコンパイラ/デバッガが出力できるようにするにはどうすればよいですか。

私は gdb を知っていますが、gdb クライアントを使用しようとしましたが、うまくいかないようです。

4

3 に答える 3

7

セグメンテーション違反の良い考えはvalgrind、デバッグのためにプログラムを実行することです。そうすれば、セグメンテーション違反の原因に関するより詳細な情報を入手できることがよくあります。たとえば、初期化されていないメモリから読み取っているかどうかがわかります。

于 2012-08-12T09:40:31.157 に答える
6

g ++を使用している場合は、最初に-gオプションを使用してプログラムをコンパイルします。次に、

 gdb name_of_program core 

取得したコアダンプでgdbを実行します(name_of_programこれは、g ++でビルドした実行可能ファイルの名前です)。このリンクは、gdbの使用方法に役立ちます。

http://www.ibm.com/developerworks/library/l-gdb/

于 2012-08-12T09:26:06.933 に答える
-1

これは、コードへの注釈を広告します。多くの関数呼び出しがあり、呼び出しパスがわからない場合にのみ役立ちます。

于 2012-08-12T10:44:44.510 に答える