3

3 つのコンパイラ (Borland、gnu、および Microsoft) を使用する必要があるプロジェクトがあります。それは 2/3 で動作しますが、今は Microsoft で動作させる必要があります。他のコンパイラで正常に動作する場所でクラッシュするように見えるので、コマンドラインでデバッグする方法があるかどうか、おそらくスタックトレースを取得するか、クラッシュの原因となった行を取得する方法があるかどうか疑問に思っています。gdbヌーで。

4

5 に答える 5

5

(完全な開示: 私は Visual Studio チームで働いています)

Microsoft C++ コンパイラを使用している場合、Visual Studio は既にインストールされていますか? その場合は、組み込みのデバッガーを使用できます。そうでない場合は、Visual C++ 2010 Expressを無料で試すことをお勧めします。優れたネイティブ デバッガーを備えています。最初のチャンスの例外 (C++、SEH、Win32 例外) でブレークし、コール スタック、ローカルなどと共に発生した行に直接移動できます。

于 2010-08-13T00:13:40.727 に答える
2

Debugging Tools for Windows - (GUI WinDBG デバッガーに加えて)cdbおよびコンソール デバッガーを含むデバッグ ツールの優れたパッケージ。ntsd

このパッケージには素晴らしいドキュメントがあり、クラッシュを処理する「ジャスト イン タイム」デバッガーとして簡単にセットアップでき、クラッシュ ダンプと非常にうまく連携します。

これらは、Microsoft がクラッシュ分析 (およびその他) に使用するハードコア デバッグ ツールです。

Windowsにはデバッガーのバージョンが付属していることに注意してntsdください(少なくとも以前は-ツールパッケージのインストール以外の私のWin7ボックスにはないように見えます)が、とにかくパッケージを入手して最新のツールを入手することをお勧めします-そして私が言ったように、ドキュメントは素晴らしい情報が豊富です。

于 2010-08-12T23:57:52.200 に答える
1

さて、あなたは、意図的にプログラムをクラッシュさせようとする 1 つのコンパイラー問題を抱えています。これは「実行時エラー チェック」と呼ばれる /RTC オプション コンパイル オプションです。オフにして、他のものと同じように動作させることができます。または、「ここで何かがおかしい」という角度を追求することもできます。/RTC に関する MSDN ライブラリの記事に詳しく記載されています。

于 2010-08-13T00:26:27.643 に答える
1

はい。

C++ :コマンド ラインでのビルド

C# : csc.exe のデバッグ中心のオプションを参照してください

于 2010-08-12T23:54:16.813 に答える
0

Codeview はそれを行う古い製品ですが、Visual Studio を使用して同じことを実行できない理由はありません。

于 2010-08-12T23:54:28.370 に答える