This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
linux環境でC言語のデバッグを行う方にむけて、gdbの使い方を説明します。 初心者向けです。 gdbとは デバッガです。ブレークポイントを張ったり、ステップ実行したり、 変数の中身を覗いたり、書き換えたり...そういうことが出来ます。 gccと同様、linuxには標準でインストールされています。 昔からあるツールであり、コマンドラインでの操作を行います。 IDEのデバッガがどうしても使えない環境でのデバッグに役立ちます。 メリット、デメリット メリット: ・たいていのlinux環境で使える ・実行中のプログラムにattachしてデバッグ可能 デメリット: ・GUI画面がない。コマンドを覚える必要がある 使い方1:gdbから直接起動 ①ソースファイルを、デバッグ可能な方式でコンパイルする gcc -g3 test.c →a.outが生成 ※-g3とするとマクロの展開が可能となります。 ②
What is GDB? GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act: Start your program, specifying anything that might affect its behavior. Make your program stop on speci
gdb gnu debugger gdb gdb emacs a.out emacs M-x gdb Run gdb (like this): gdb a.out gdb window main break main (gdb) (gdb) break main run main (gdb) run main disassemble disassemble disassemble main disassemble (gdb) disassemble main main disassemble stepi (gdb) stepi stepi step (gdb) info registers (gdb) print $ continue (gdb) continue main main (gdb) break * x (gdb) x x x/ 10 o b(byte), h(half), w
GDB でレジスタを表示するときに (gdb) info register rax # もしくは i r rax としていたが、レジスタは変数としても参照可能なことを知った。頭に $ をつけるだけ。 (gdb) print/x $rax 変数として参照できるので、操作の度に自動でレジスタを表示する display コマンドを設定する事が可能。 (gdb) display $rax また register をポインタに cast してごにょごにょとかも可能。 (gdb) print/x ((intptr_t*)$rax)[1] $1 = 0x415a2c .gdbinit # http://0xcc.net/blog/archives/000126.html set history save on set history size 10000 set history filename ~/.
gdb の gcore コマンドを使う デバッガの理論と実装を読んで以来、デバッガをもっと活用しようという意欲がわいてきました。そこで、gdb について調べていると、 gcore (generate-core-file) というコマンドを見つけました。 gcore は実行中のプロセスの core を生成する gdb のコマンドです。通常、 core ファイルはプログラムが異常終了したときにカーネルによって生成されますが、gdb の gcore コマンドを使えば実行中のプロセスを終了させることなく core ファイルを生成できます。 gcore コマンドは次のように使います。 % gdb (gdb) attach PID (gdb) gcore core (gdb) detach まず attach コマンドで PID を指定して実行中のプロセスにアタッチします (gdb -p PID で起
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く