6

Windows 7 の Cygwin で実行するプログラムがあり、常にセグメンテーション エラーが発生します。これは私のプログラムではありませんが、ヘルプが必要で、開発者から少なくともスタック トレースを要求されました。私の Cygwin 変数は次のようになりますerror_start=c:/cygwin/bin/dumper.exe。プログラムを実行する前に、次のコマンドも実行しますulimit -c unlimited。これらは、セグメンテーション違反の後にCygwinから何らかの情報を取得するために、グーグル経由で見つけることができる2つの要件(この質問を含む)のみです。

それでも、プログラムを実行すると、メッセージが出力されSegmentation fault、a.exe.stackdump やその他のダンプ ファイルは出力されず、ダンパー ユーティリティも起動されません。必要な情報を取得する方法について何か提案はありますか?

4

1 に答える 1

4

Unix とは異なり、Windows ではコア ダンプは「無料」ではありません。それらを入手できたとしても、それを利用するのは Unix ほど簡単ではありません。Cygwin は、これらの基本的なプラットフォームの違いを修正しません。単純な事実として、Windows ではデバッグが別の道をたどりました。つまり、IDE、対話型デバッガーなどです。私は、あなたがよく知っている丸い穴にその四角いペグを打ち込もうとはしません。

Visual Studio をインストールし、そのデバッガーでプログラムを実行する以外に、便利なものを入手する最も簡単な方法は、おそらくWinDbg!heap -p -a UserAddrをインストールし、その下でプログラムを実行してから、いつクラッシュするかを言うことです。スタック バックトレースは出力のどこかにあるはずです。

于 2012-06-12T20:16:58.483 に答える