タグ

GCCとcoreに関するItisangoのブックマーク (2)

  • 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 の 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