タグ

gdbとGDBに関するkyouzontのブックマーク (7)

  • Debugging with GDB - データの検査

    ユーザ・プログラムの中のデータを調べる通常の方法は、 printコマンド (省略形はp)、 またはそれと同義のコマンドである inspectコマンドを使用することです。 これは、 ユーザ・プログラムが記述された言語 (異なる言語の使い方参照) による式を評価し、 その値を出力するものです。 print expr print /f expr exprは (ソース言語による) 式です。 デフォルトでは、 exprの値は、 exprのデータ型にとって適切な形式で表示されます。 `/f'を指定することで、 他の形式を選択することも可能です。 `/f'のfは形式を指定する文字です。 出力フォーマット を参照してください。 print print /f exprを省略すると、 GDBは値履歴 (値履歴参照) の最後の値を再表示します。 これは、 同じ値を異なる形式で調べるのに便利です。 データを調べる

  • ダンプされたcoreを元にエラー原因を解析する方法 - Hello, world! - s21g

    Railsアプリを書いてる場合はあまり関係ないですが、 セグメンテーションエラー(SEGV)などに遭遇した場合に、 原因を調査する方法を紹介します。 まずは、coreを吐かせるためにulimitの設定をします。

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • debuginfoの使い方など – ログ取得ツール

    Fedora Coreにはdebuginfoパッケージというものがある。普通にrpmbuildなどでコンパイルすると、いつの間にかできてしまうので邪魔に思う人も多いかもしれない。実際、インストールしなくても全然構わない。 debuginfoパッケージを作らないようにするには、$HOME/.rpmmacrosに %debug_package %{nil} と書くとよい。…でも、たくさんあるってことは便利に使えるってことなんだろう、というのが日の議題。書いとかないと忘れてしまうしね。 debuginfoが威力を発揮するのは正にデバッグのときだ。しかし普段はデバッグなどはしないわけなので、別パッケージにして塩漬けにしておく。それがdebuginfo。で、ゲロ(core)を吐いたときに使う。 例えば、bashがゲロを吐いて落ちたとしよう。「unlimit -c unlimited」としておかない

  • gdb + core 解析 - utahta blog

    core ファイルを解析するメモ。 下準備 まず意図的に SEGV させるコードを書く。 $ vi a.cpp #include class CPrint { private: int m_number; char *m_str; public: CPrint() : m_number(10), m_str(NULL) {} ~CPrint() {} void print(){ // ここで SEGV る予定 printf( "%d, %c\n", m_number, m_str[0] ); } }; int main() { CPrint p; p.print(); return 0; } 続けて core を出力させる設定。環境は Linux CentOS 5。 $ ulimit -c unlimited core dumped 下準備で作成したソースコードをコンパイル。-g を忘れず

    gdb + core 解析 - utahta blog
    kyouzont
    kyouzont 2012/06/03
    coreファイルの解析入門。
  • http://www.idocsq.net/page/200

    kyouzont
    kyouzont 2011/12/07
  • GDBの使い方 - PukiWiki

    GDBの使い方 † 参考URL ファイヤープロジェクト GDB テクニカルノウハウ gdbの使い方(その1) gdb でデバッグしていて、ソースコードが表示されない場合、対象プログラムが、-g オプション指定でコンパイルされているか、確認をする。-g オプションは、デバッグ情報を追加するための、オプションである。 ↑ バグ箇所の発見 † $ gdb [exefile] (gdb) break [function] (gdb) run (args) (gdb) s 5 (gdb) s (gdb) s 動作を確認したい関数へ breakpoint を貼り、ソースコードを一行ずつ実行していく。 $ gdb [exefile] (gdb) run (args) ..Some Error Message.. (gdb) エラーや例外で停止する場合は、とにかく run で実行をして、出力されるエラーメ

  • 1