タグ

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

  • 関連タグはありません

タグの絞り込みを解除

binaryとdebugとlinuxに関するWackyのブックマーク (6)

  • gdb hacks - ハードウェアのデバッグ機能を使う (前編) - ほげめも

    gdb hacks 第 5 回。プロセッサの中にはデバッグ支援機能をハードウェアで持つものがあり、例えば IA-32 アーキテクチャでは 8 のデバッグレジスタ (DR0-DR7) というものが用意されています。gdb はこれをどのように使用しているかを見てみます。 IA-32 のデバッグ機能については Intel のマニュアル IA-32 Intel® Architecture Software Developer's Manual, Volume 3B: System Programming Guide, Part 2 の CHAPTER 18 Debugging and Performance Monitoring に完全な解説があります。 はしょって説明すると、DR0-DR3 の 4 つのレジスタで指定したリニアアドレスの示すメモリ領域にプロセッサのアクセスがあると、INT 1

    Wacky
    Wacky 2006/04/16
    IA-32 アーキテクチャでは 8 本のデバッグレジスタ (DR0-DR7) というものが用意されています。gdb はこれをどのように使用しているかを見てみます。
  • gdb hacks - gdbcalc スクリプト - ほげめも

    gdb hacks 第 4 回。前回は gdb 電卓で使えるようになった数学関数のかっこ悪さについて不満を述べましたが、それを一部解決する方法を思いついたのでまとめておきます。 当初は sqrt といった関数シンボルに新たな型情報を設定する方法があるのではないかと思い、gdb のソースなどを調べていたのですが、どうもそんな都合のいい方法はなさそうなので、あきらめて別の方法を考えました。 gdb では convenience variable という $ で始まる任意の名前の変数を使うことができますので、それに関数シンボルのアドレスを関数ポインタ型でキャストして代入してみます。 (gdb) set $sqrt = (double (*)(double)) sqrt (gdb) set $pow = (double (*)(double, double)) pow (gdb) ptype $s

    Wacky
    Wacky 2006/04/16
    gdb では convenience variable という $ で始まる任意の名前の変数を使うことができますので、それに関数シンボルのアドレスを関数ポインタ型でキャストして代入してみます
  • gdb hacks - gdb を電卓の代わりに使う - ほげめも

    gdb hacks 第 3 回。今回は以下のトピックを扱います。 gdb を電卓の代わりに使う gdb が扱うシンボルの型情報 筆者は gdb を電卓代わりによく使っています。以下のように出力フォーマットを手軽に指定できること、C の表現式がそのまま使えること、前の計算結果を簡単に参照できることなど、他の電卓プログラムにはない魅力があります。bc や irb と比較しても gdb はよりプログラマ向きの電卓なのではないかと思います。 % gdb (gdb) p 123+456+789 $1 = 1368 (gdb) p 123+0456+0x789 $2 = 2354 (gdb) p/o $2 $3 = 04462 (gdb) p/x $3 $4 = 0x932 (gdb) p/t $4 $5 = 100100110010 (gdb) p/x 'a' $6 = 0x61 (gdb) p/c

    Wacky
    Wacky 2006/04/16
    gdb を電卓の代わりに使う,gdb が扱うシンボルの型情報
  • gdb hacks - gdb とターゲットプロセスとの通信を観察する - ほげめも

    gdb hacks 第 2 回。今回は以下のトピックを扱います。 gdb が関数の呼び出しでターゲットプロセス中に作成するデータ構造 gdb とターゲットプロセスとの通信を観察する方法 サンプルデバッグセッションのログを gdb_target_debug.txt に用意していますので参照してください。実験環境は例によって i386 の Debian GNU/Linux (sid) です。 gdb とターゲットプロセスとのやりとりは、以下のように 3 つほどデバッグスイッチを有効にすると観察することができます (infrun デバッグスイッチは gdb 6.4 以降から使えます)。 119 (gdb) set debug target 1 120 (gdb) set debug infrun 1 121 (gdb) set debug lin-lwp 1 122 (gdb) p chdir(

    Wacky
    Wacky 2006/04/16
    gdb が関数の呼び出しでターゲットプロセス中に作成するデータ構造,gdb とターゲットプロセスとの通信を観察する方法
  • vimrc diary / 2006-02 - なぜメールの後ろに全文引用するのはダメか

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    Wacky
    Wacky 2006/02/18
    MinUnitは、世界一導入の簡単なC用のUnit Testフレームワークだろう。コードはわずか3行しかない。
  • ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ

    ltrace で共有ライブラリの関数呼び出しをトレースする ltrace は共有ライブラリの関数呼び出しをトレースする Linux 用のツールです。システムコールをトレースするstrace と同様に、デバッグに大変役立ちます。 ltrace は Debian GNU/Linux の場合は sudo apt-get install ltrace でインストールできます。 ltrace の使い方は簡単です。基的には ltrace コマンドの引数にトレースしたいコマンドとその引数を並べれば OK です。デフォルトでは ltrace のメッセージは標準エラーに出力されます。これをファイルに出力させるには -o オプションを用います。たとえば、次のように実行します。 % ltrace -o log.txt wget https://www.codeblog.org/ この例では wget が ht

    Wacky
    Wacky 2006/02/18
    ltrace は共有ライブラリの関数呼び出しをトレースする Linux 用のツールです。システムコールをトレースするstrace と同様に、デバッグに大変役立ちます。
  • 1