タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

gdbとkeptに関するtakaya030のブックマーク (2)

  • gdbを使ってコアダンプの原因を解析 - それが僕には楽しかったんです。

    コアダンプは嫌いだ。 大学やその他情報系専門科のある学校に通ったことがある人が一度は触ったことがあるであろう、C言語。 こいつは近年の言語に比べてものすごく面倒くさい書き方をするし、手間もかかる。 中でも最悪なのが「コアダンプ」の文字。 これは、多くのC言語ユーザを苦しめてきただろう。 一応エラーの部類に入ると思うが、こいつはどこで問題が起きているか普通は出力してくれないから直すのがすごく大変。 というわけで、今回はコアダンプの原因をgdbというデバッガを使用して解析してみる(※linuxユーザ向け) それでは解析の準備 これはこの前自分が実際にコアダンプを発生させてしまったコード。 このファイルをここでは「quicksort.c」とする。 #include<stdio.h> void quicksort(int array[],int left_index,int right_index

    gdbを使ってコアダンプの原因を解析 - それが僕には楽しかったんです。
  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
  • 1