タグ

Tipsとgdbに関するiwwのブックマーク (6)

  • GDBでプロセスID表示とdefine値表示 - tail -f /var/log/こうちかずお.log

    プロセスID表示 runした後、 (gdb) info proc id を使う。 define値表示 gオプションでコンパイルすると定義内容が表示できないので、 (gdb) p FOOBAR No symbol "FOOBAR" in current context. (gdb) shell grep FOOBAR /usr/include/bar.h としていたが、-g3オプションだとprintで表示可能でしかもinfo macroでどこに定義されているのかがわかる。 2つの例 $ cat test.h /** * test.h * $Id$ */ #ifndef _TEST_H #define _TEST_H 1 #define TEST_STR "This is test" #endif /* _TEST_H */ $ cat test.c /** * test.c * $Id$ *

    GDBでプロセスID表示とdefine値表示 - tail -f /var/log/こうちかずお.log
    iww
    iww 2021/03/26
    『-g3オプションだとprintで表示可能でしかもinfo macroでどこに定義されているのかがわかる。』
  • いやなブログ: gdb の gcore コマンドを使う

    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 で起

    iww
    iww 2014/04/07
    gcoreはgdbのコマンド。 gdbパッケージをインストールするとついでに使えるようになる
  • gdb tips - bkブログ

    gdb tips gdb を使う上で便利な tips を紹介します。基的な使い方をマスターしている人向けです。 .gdbinit の設定 ホームディレクトリに .gdbinit を置いておくと、gdb の起動の際に読み込まれます。私の場合は次のような設定をしています。 set history save on set history size 10000 set history filename ~/.gdb_history set print pretty on set print static-members off set charset ASCII set history から始まる最初の 3行は履歴に関する設定です。それぞれ、 gdb のコマンドラインの履歴をファイルに保存する、保存する行は最大 10000 行、ファイル名は ~/.gdb_history 、という意味になります。

    iww
    iww 2012/07/07
  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

  • アセンブラで遊ぶ時に便利なgdb設定 - memologue

    アセンブラで遊ぶ時に便利な ~/.gdbinit を紹介します。まず ~/.gdbinit を次のように記述してください。 # # ~/.gdbinit # # .so を shlib コマンドで手動で読み込む # set auto-solib-add 0 # スレッド生成時のSIG32でブレークしない handle SIG32 nostop # ニモニック構文の選択 # set disassembly-flavor intel set disassembly-flavor att # フラグレジスタの可読化関数 define pf printf "eflags: %s%s%s%s%s%s%s%s%s (= 0x%08u)\n",\ $eflags & 2048 ? "O":"-",\ $eflags & 1024 ? "D":"-",\ $eflags & 512 ? "I":"-",\

    アセンブラで遊ぶ時に便利なgdb設定 - memologue
  • 特選フリーソフト 「GDB」― プロセス動作中にcoreファイルを出力 ―:ミラクル・リナックス

    日経Linux 2003年8月号掲載 ※掲載記事の内容とは若干異なります。 これまで Linux でできなかったこと GDB での動的 core ファイル生成 gcore.sh の使用方法 core ファイルの解析 まとめ これまで Linux でできなかったこと 様々なプログラムを開発する際、どうしても問題となるのがバグである。 プログラムの開発規模が大きくなればなるほど、また、開発者の人数が多くなればなるほど、プログラム中にバグの混入する可能性は高くなる。 何らかのソフトウェア開発を行う際には、工程として、設計、開発、そして品質を確保するための評価。という工程があるはずである。 この評価工程である程度のバグは取り除かれるが、中には取りこぼされたまま世の中にでてくるバグも存在する。 開発者としては、この取りこぼされたバグ(障害)ほど厄介なものはない。評価工程で発見できなかったため、その原

    iww
    iww 2007/12/14
  • 1