タグ

debugとgdbに関するyheldのブックマーク (2)

  • DSAS開発者の部屋:オープンソースを楽しむエンジニアの一日 〜 コードを楽しく読む工夫

    C言語で書かれたソースコードを読んでいるとき、関数ポインタから呼び出されている機能の実体がどこに書かれているのかを探すのに苦しんだ経験はありませんか? 私はあります、いっぱいあります!! そんなときはどうするかというと・・・ 手順1: まずは気分転換をする! 手順2: そして気合いを入れ直す! 手順3: さらに気力で読み砕く! 手順4: 最後に根性で発見する! これが、ごく一般的な作業手順(?)かと思います・・・(ごめんなさい嘘です) でもまあ、実際にここまで出来れば、そのプログラムの大まかな構成とか癖みたいなものはだいたい把握できているはずなので、他の関数ポインタについてもある程度当たりをつけて見つけだすことが出来るようにはなるかと思います。 ・・・・・が、、できれば気合いと根性を使わずに追えるなら追いたいのが人情ですよね。 straceやltraceを使えばシステムコールやライブラリコ

    DSAS開発者の部屋:オープンソースを楽しむエンジニアの一日 〜 コードを楽しく読む工夫
    yheld
    yheld 2007/06/17
    [あとでhamanoさんをトレース]
  • アセンブリ言語の教科書 第3章 GDBの使い方。 - ボクノス

    アセンブリでprintfデバッグは辛すぎなのでのGDBデバッグについて学ぶ。 アセンブリでも-gオプションが使える。 % gcc -g -o hello hello.s % gdb hello (gdb) l 1 .text 2 .global main 3 4 main: mov $1, %eax 5 mov $0xFFFF, %ax 6 mov $0b101010, %ah 7 mov $0, %eax 8 retアセンブリの場合、ステップの扱いが違う。また、表示も便利なオプションを発見した。C言語と違う部分だけメモ。 $eaxでレジスタの参照が出来る。 %ではないので混乱しそう。 si(stepi) ステップ実行 sすると飛んでく。注意。 ni(nexti) ステップアウト call先へは飛ばない。 p/x $eax(print) %eaxを16進数で表示 display/t $ea

    アセンブリ言語の教科書 第3章 GDBの使い方。 - ボクノス
  • 1