タグ

gdbに関するyamanetoshiのブックマーク (30)

  • api.satoru.net

    This domain may be for sale!

  • Omicron Linux/GDBを使ってコードを追っかける

    Linux あんまりGDBを使っている人がいないみたい.OS/omicronV4 みたいに数人でコンパイラから作って貧弱な環境で(体力をトレードオフに(^^;)ひぃひぃ言っているわけじゃないんだから使えるものは活用しないと. はじめに 構造体のメンバをたどるときなどにデバッグ情報が必要になるので,前もって -g オプション付きでカーネルをコンパイルしておくこと./usr/src/linux/Makefile の CFLAGS_KERNEL を次のように編集すれば OK. CFLAGS_KERNEL = -g また,次のようにコマンドラインから実行しても OK. # EXTRA_CFLAGS=-g make gdb の起動は次のようになる./proc/kcore にアクセスするため,su しておく必要がある./proc/kcore とはPCに搭載された物理メモリを覗くためのインタフェースであ

  • Google Groups

  • http://www.redhat.com/v/ogg/Fedora14_GDB.ogg

  • GDB スタブを書いてみよう その2 - higepon blog

    gdb 7.0 をダウンロードする。 ./gdb/m68k-stub.c ./gdb/m32r-stub.c ./gdb/i386-stub.c ./gdb/sparc-stub.c 前回の調査で sparc-stub.c が良くまとまっている事が分かっているので見ていこう。 さっそく GDB コマンドなる物があるらしく説明がある。レジスタやメモリの read/write、resume, stop, kill など。 * command function Return value * * g return the value of the CPU registers hex data or ENN * G set the value of the CPU registers OK or ENN * * mAA..AA,LLLL Read LLLL bytes at address AA..

    GDB スタブを書いてみよう その2 - higepon blog
  • GDB スタブを書いてみよう その1 - higepon blog

    そろそろ Mona のデバッグ環境を整えないと色々大変なので GDB スタブを書く事にする。全く分かっていないので調べるところから。 正月休みくらいに動くようになると良いな。 目的 達成したいのは Mona 中のユーザープロセスのデバッグ。ユーザープロセスが出来れば Kernel は簡単だと思う。 特にユーザープロセスが死んだときにソースコード上のどこで死んだかが GDB 一発で分かるようにしたい。 資料 http://sourceware.org/gdb/current/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugging 仕組み マニュアルを読みつつ箇条書きで。 GDB と Remote は Serial ポートや、TCP, UDP などで通信を行う Remote 側は GDB スタブを実装する sparc-stub.c が一番まと

    GDB スタブを書いてみよう その1 - higepon blog
  • GDBで歴史をさかのぼれるように!なりました! GDB 7.0 の新機能Reverse Debuggingを使ってみた - 日記を書く [・w・] はやみずさん

    Twitter上で、@alohakun が言及していた GDB の reverse debugging の機能を使ってみました。 GDB にトレースと逆実行機能入ったのか。 http://www.gnu.org/software/gdb/news/reversible.html http://twitter.com/alohakun/status/4481139191 まずは簡単な使い方を説明したあとに、インストール方法を説明します。 こんなときに便利 「変なこと」が起きている大体の場所がわかっているとき デバッグ中に、大体どこで変なことが起きているかはわかっているけど、細かい場所は特定できていないとき、reverse debuggingが効果を発揮します。 GDBでステップ実行をしていて、「しまった!行きすぎた!」という経験はよくあると思います。こういうとき、今まではプログラムの実行を最

    GDBで歴史をさかのぼれるように!なりました! GDB 7.0 の新機能Reverse Debuggingを使ってみた - 日記を書く [・w・] はやみずさん
  • 革命の日々! [書評] 実践デバッグ技法

    御礼 なんで献もらえたのかまったく不明なんだけど(^^; ちまたではデバッグ三部作のトリを飾る一作と呼ばれているらしい。 いちおう、DDDとEclipseについても書いてあるけど、メインはどうみてもgdb。なので、Linux上でC言語開発をする羽目になった新人プログラマが読むと、一気にスキルが上がってお得。 昔、新人教育をやっていた時代にこれがあったら、全員に買わせたかもしれん。 ちょっと、長いけど目次を引用 推薦の言葉 まえがき 1章 初心者にもプロにも役立つ予備知識 1.1 書で扱うデバッガ 1.2 使用するプログラミング言語 1.3 デバッグの原則 1.3.1 デバッグの質:確認の原則 1.3.2 確認の原則にとってデバッガの価値とは? 1.3.3 その他のデバッグ原則 1.4 テキストベース vs. GUIベース(そして両者の折衷形態) 1.4.1 インタフェースの簡単な

  • Debug Hacks Nightと『DebugHacks&Tシャツ欲しい』当選者のおしらせ - 未来のいつか/hyoshiokの日記

    昨日(2009年5月28日)開催したDebug Hacks Nightにおいて、『Debug Hacks』とTシャツが当たるプレゼントの当選者を発表した。栄えある当選者の皆様は下記のとおり。ご応募ありがとうございます。 はてなかよっ! http://d.hatena.ne.jp/repeatedly/20090501/1241112729 朝は眠い日記 from hell -- Luck is for losers -- http://d.hatena.ne.jp/unlearned/20090501/1241154479 Kwappa開発室 PHPとPostgreSQLで携帯向けwebサイト開発をしてるプログラマのメモ http://kwappa.txt-nifty.com/blog/2009/04/debug-hackst-c6.html 会場にはなんとkwappaさんがいらっしゃって

    Debug Hacks Nightと『DebugHacks&Tシャツ欲しい』当選者のおしらせ - 未来のいつか/hyoshiokの日記
  • Debugging a segmentation fault using gdb

    I am not a big proponent of gdb. If you *really* know what you are doing, gdb shouldn’t be required. But, every now and then, you come across code that has used function pointers exclusively and then, hand-debugging becomes painful. gdb to the rescue. You’ll need the following pre-requisites to use gdb to debug a segmentation fault: 1) make sure you have compiled the executable WITH debugging symb

    Debugging a segmentation fault using gdb
  • Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな

    ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F

    Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな
  • Emacs + GDB チートシート - higepon blog

    Emacs + GDB を利用したいならば、何よりも GNU Emacs Manual: Debuggers(英語) を読むことを強くおすすめします。 和訳も存在しますが内容が古く、マウスを利用した操作やグラフィカルな機能についての記述がありませんでした。 マニュアルを読んで理解したあとは実践で覚えていくわけですが、以下にまとめたチートシートを利用すれば時間が節約できるかもしれません。 もしも便利な機能に関して漏れがあれば是非教えてください。 .emacs ;;; GDB 関連 ;;; 有用なバッファを開くモード (setq gdb-many-windows t) ;;; 変数の上にマウスカーソルを置くと値を表示 (add-hook 'gdb-mode-hook '(lambda () (gud-tooltip-mode t))) ;;; I/O バッファを表示 (setq gdb-use

    Emacs + GDB チートシート - higepon blog
  • rubyのバグ、gdb豆知識(その3) - 未来のいつか/hyoshiokの日記

    以下でSEGVする $ ./ruby -e 'eval("1+" * 100000 + "1")' Segmentation fault 参照: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/37007 さっそくgdbでおってみる。 (gdb) run -e 'eval("1+" * 100000 + "1")' Starting program: /home/hyoshiok/work/ruby_trunk/ruby/ruby -e 'eval("1+" * 100000 + "1")' [Thread debugging using libthread_db enabled] [New Thread 0xb7d3c6b0 (LWP 8295)] [New Thread 0xb7f10b90 (LWP 8296)]

    rubyのバグ、gdb豆知識(その3) - 未来のいつか/hyoshiokの日記
  • gdb豆知識(続き) 2008-09-27 - 未来のいつか/hyoshiokの日記

    gdb豆知識(d:id:hyoshiok:20080926#p1)の続き。 Windowsの開発環境は知らないのだけど、噂によると素敵なIDE(統合開発環境)が整備されていて、マウスでぐりぐり、ヘルプも充実、簡単簡単らしい。それから比べると、GNU Emacs+gcc+gdbというのは微妙にレトロ感あふれる。とは言うもののデバッグのプロセスはIDE的マルチウィンドウ、GUIでグリグリであろうとなかろうと基は変らないので、よしとしよう。 コンパイル時のオプション gccの-gオプションを付ける。Makefileのコンパイルオプションは通常CFLAGSなのでCFLAGS=-gとしておく。最適化オプション(-O)と同時に付けることができるので(素晴しい)、最適化オプションも適当に付けておく。 時々、デバッグオプション(-g)を付けるときは最適化オプションをつけない、あるいは-O0(アルファベッ

    gdb豆知識(続き) 2008-09-27 - 未来のいつか/hyoshiokの日記
  • gdb豆知識 2008-09-26 - 未来のいつか/hyoshiokの日記

    意外と知っているようでよく知らない自分が日々使う道具。そこで、gdbについて復習がてらいろいろ調べることにする。 gdbemacsから使う gdbをコマンドラインから素で使うのはいかがなものかなと思う。やっぱemacsと固く結合されているわけだからemacsから使うのが正しい姿であろう。 「え〜、だってvi使いだし〜」とか「秀丸からは使えないんすかね」とか言うやつがいるが、秀丸ってなんだよ、とりあえづubuntuでも入れて、emacsいれて、gdb使いなさいとか指導したくなる。いかんいかん、説教くさくなってはいかんいかん。 先日もある会議でデバッガの話が話題になったのだが、「TCPなんちゃらのストール問題のデバッグ方法なんですけどね」、みたいな話題で、「それってカーネルの話?」とわたしが聞くと、「いや、ユーザランドっす」と若いハッカー、「じゃ、gdbでほげほげでいけそーね」、「そーっすね

    gdb豆知識 2008-09-26 - 未来のいつか/hyoshiokの日記
  • Peter's gdb Tutorial: Table Of Contents

    Chapter 0: Administrata Why Write This Tutorial? Acknowledgements And Dedication Authorship And Copyright About Exercises Thank Yous A Plug For The EFF A Request For Help Chapter 1: Introduction What Is A Debugger? Why Not Use printf()? What Is GDB? Other Symbolic Debuggers Debuggers Front Ends Chapter 2: Memory Layout and the Stack Where Are We Going To Go? Virtual Memory Memory Layout Stack Fram

  • 2008-08-24 - 未来のいつか/hyoshiokの日記 - gdb を emacs から使う

    アプリケーションの開発時にはデバッガーを使うのはあたりまえだろう。そのデバッガーを使えなくて何がプログラマだ、くらいの事は思うのだけど、世のプログラミング言語の入門書にデバッグの仕方もましてやデバッガーの使い方も載っていない。 その隙間を誰がうめるのか。じゃあ、わたしが埋める。埋めてみた。うまくいったかいかないかは分らないがともかくやってみた。 プログラミングキャンプである。若いプログラマ志願者と一緒になって4泊5日のブートキャンプである。鬼軍曹がびしびし鍛えあげるブートキャンプである。 デバッガーを上手に使えなければ戦場で討死する。死ぬな。生きろ。 デバッガーの使い方を教えるのは、戦場に行く前の最初の一歩だろう。防弾チョッキかヘルメットくらいの役には立つ。もし日のプログラミング現場で、デバッガの使い方を教えていないとしたらプログラマとしてどのように生きていくのかを知らない人々によって、

    2008-08-24 - 未来のいつか/hyoshiokの日記 - gdb を emacs から使う
  • ウノウラボ Unoh Labs: gdbの使い方

    今年の2月にマカーになったbokkoです。どうも僕の使っているフォントがほかの人には見づらいらしく、「そのフォントはねぇよw」と言われたり、外付けのキーボードを使っているせいか、「MacBookの意味なし!」と社内で言われてたりしています。 今日はgdbのお話です。gdbは非常に広く使われているデバッガで、特にC、C++のプログラムをデバッグするのによく使われています。 デバッガの使い方 プログラムをデバッグする際、例えば以下の方法が挙げられます。 1. ソースコードを読む 2. ソースコードに出力関数を仕込む(例えばprintf) 3. ソースコードを書き換えて実行してみる これで十分な場合もありますが、そうでない場合もあります。これらの方法ではプログラムを実行している最中にこちらからソースコードレベルでのアクションを起こすことが難しいので、例えば、プログラムをある時点で止めて変数の

  • ユメのチカラ: 大規模ソフトウェアをgdbを利用して微視的視点から理解をする

    たまたま講読している php-dev というPHPの実装を日語で議論するメーリングリストで「mbstring の新関数」というスレッドがあった。新規にmb_list_encodings_alias_names()という関数を追加したらしいのだが、既存のmb_list_encodings()とどう違うのかどうかという議論がわきおこっている。 ここでは、mb_list_encodings()を題材にどうやってphpの実装を理解していくか、そのプロセスを記述してみたい。もちろんこの方法がベストであるとか、この方法でなければいけないとか、いつでもこの方法が適用可能だなんてことを主張するつもりは一切ないが、一つの例として大規模ソフトウェアの微視的理解方法を理解いただきたい。 1) mb_list_encodingsがどこで利用されているかを知る。 $ cd /usr/src/php-5.1.4 $

  • 使いながら覚えるGDB

    はじめに プログラムのデバッグと言えばひたすらprintfを挿入しまくっていたある日、 デバッガなる便利な代物があるということを知った。なんでもプログラムを一行 ずつ実行できて、変数の値をその場で確認できるらしい。これは是非使ってみねばと 思い、UNIX環境で使えるGDBというデバッガを試してみた。が、何がなんだかさっぱり 分からない。Webを検索するとマニュアルの日語訳が見つかった。これで勉強すれば 使えるようになるかも、と読み始めるも、いきなりm4がどうのこうのだの、意味不明 の文章が続く…。 これは私がGDBを使い始めた時の話だが、似たような経験を持っている人が他にもいる と思う。 GDBのマニュアルは初心者にはすこし敷居が高い。 GDBに限らずマニュアルというものは初学者が参考書として用いるのには 適していない。というのも、マニュアルの類は情報量が多い分、重要な部分を 見つけ出す