タグ

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

  • 関連タグはありません

タグの絞り込みを解除

gdbに関するyumu19のブックマーク (2)

  • 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 の使い方・デバッグ方法まとめ
    yumu19
    yumu19 2017/01/16
  • gdbメモ

    ブレイクポイントをすべて削除 delete 特定のアドレスの値が書き換わった時ブレイクしたい場合 まずアドレスを取得する。 (gdb) p &(foo->bar) $39 = (MyData *) 0x80cb978 (gdb) watch *((MyData*)0x80cb978) Hardware watchpoint 7: *(MyData *) 135051640 (gdb) c 単純に watch foo->barとしただけだと、fooの有効な名前空間から出た瞬間にwatchpointが無効になってしまう。次に、watch 0x80cb978とすると、これはそもそもポインタのアドレスなので、これは変化しない。ついでに、これだとhardware watchpointにならない。 ではどうするかというと、上の例のように、まずアドレスを渡し、それは、MyDataへのポインタだと明示し、

    yumu19
    yumu19 2017/01/16
  • 1