タグ

GCCとgdbに関するItisangoのブックマーク (3)

  • Cygwinのstackdumpファイル - hat-tunの日記

    win*Cygwin*gccの環境でC言語プログラムをgdbでデバグする。(ビルド時-gオプション必須) 来セグメンテーションエラーが出ると、gccはcoreファイルというものを吐き、 こいつをgdbわせることで、バグの起きた箇所を探れるというわけなんですが、 Cygwin環境では、このcoreファイルが吐かれず、 代わりに、エラー時のCPUレジスタ値、関数スタック値などが数行かかれた、 stackdumpファイルというものが生成されます。 こいつは、coreファイルに比べ圧倒的にデバグ情報が少なく、gdbわせることもできません。 が、頑張ればスタックを逆アセンブルして、バグ箇所を特定できたりするというお話。 まず、gdbでプログラムを起動(run)し、main関数でbraekする。 gdb [execute file] (gdb) break main (gdb) run そこ

    Cygwinのstackdumpファイル - hat-tunの日記
    Itisango
    Itisango 2013/04/20
    #Cygwin で #core を吐かせるには #環境変数 #CYGWIN に #error_start=dumper という変数を設定する。 #あとで試す 。
  • GDB: The GNU Project Debugger

    What is GDB? GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed. GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act: Start your program, specifying anything that might affect its behavior. Make your program stop on speci

    Itisango
    Itisango 2013/01/24
    #GNU #gdb #debug #tool #project page
  • いやなブログ: 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 で起

    Itisango
    Itisango 2012/11/30
    そういえばSolarisにはgcoreコマンドってのがあったな…。
  • 1