▼スレッド
│
└◇755:dumperとcore [hag] 11/26 13:11
└◇756:dumperとcore [hag] 11/26
└◇761:Re:dumperとcore [な] 11/26
└◇762:Re[2]:dumperとcore [hag] 11/27
└◇764:Re[3]:dumperとcore [な] 11/27
└◇765:Re[4]:dumperとcore [hag] 11/28 <
Cygwin で stackdump ではなく core を吐かせる方法として、スレッド一覧
環境変数 CYGWIN=error_start=C:\cygwin\bin\dumper.exe
を設定することが紹介されていたのですが(Cygwin User's Guide)、下記のようなエラーが出て core ではなく結局 stackdump ができてしまいます。
$ ./lecture4-2
14 [main] lec 700 handle_exceptions: Error while dumping state (probably corrupted stack)
Segmentation fault (core dumped)
サンプルプログラムは http://www-ise3.ise.eng.osaka-u.ac.jp/miura/programLecture/lecture5.html の lecture4-2.c です。
計算機環境は Win2000, CygwinDLL 1.3.16, dumper 1.9, gcc 3.2 です。
最近 Cygwin に移行した Cygwin初心者なので何卒よろしくお願いいたします。
訂正・・・というか、肝心なところが抜けていたといいましょうか。スレッド一覧
何を知りたいのかというと、要は Cygwin で core をつかってGDBでデバッグできるようにしたいわけです。stackdump みても僕には何のことかわからないので。
core を出力するための設定方法等、また、現状では何が問題になっているのかも教えていただければ幸いです。
注意:解決方法ではありません。スレッド一覧
通常のアプリケーションのデバッグであれば、coreを吐くのを待つよりは、
普通にgdbの上で動かしたほうが手っ取り早いように思いますが、
なにかcoreファイルが必要な理由があるのでしょうか。
おっしゃるとおりです。確かにgdbで動かしたほうが手っ取り早いですね。スレッド一覧
ただ、LinuxでやってたことがCygwin上でできないのが気持ち悪いというか、どうせだったらcoreのほうが使えるだろう、というだけです。
できなくても支障はないけど、何故できないのかが気になるわけですね。
気が向いたので、ちょっとやってみました。スレッド一覧
CYGWIN=error_start=c:\cygwin\bin\dumper.exe
だと、確かにダメですが、
CYGWIN=error_start=c:\cygwin\bin\gdb.exe
にすると、とりあえず NULL ポインタへのアクセスで
SEGV をくらったあと、GDBが立ち上がりました。
1.3.x のどこかでdumperが動かなくなってしまったのではないかと。
>LinuxでやってたことがCygwin上でできないのが気持ち悪い
エミュレーションにすぎないわけですから、
多くを望みすぎてもなぁと思います。
>エミュレーションにすぎないわけですから、多くを望みすぎてもなぁと思います。スレッド一覧
そうですね :-)。
ご協力ありがとうございました。
当面 error_start=gdb でやってみたいと思います。