1

Visual Studio で実行されているが、サーバー環境でクラッシュする exe をデバッグしようとしています。クラッシュすると、サーバーは Visual Studio で「デバッグ」する機会を与えてくれます。これにより、「シンボルがロードされていません」という行の長いリストが出力されます。これは何を意味するのでしょうか?ロードしようとしている「シンボル」は何ですか?

クラッシュ プリントアウトの最初の 2 行を次に示します。

'AutoMatcher.exe': ロードされた 'PathToMyExe\MyExecutables.exe'、シンボル ファイルにネイティブ シンボルがありません。- 'AutoMatcher.exe': ロードされた 'C:\Windows\System32\ntdll.dll'、シンボルがロードされていません。

このような多くの...「シンボルがロードされていません」で終わる

4

3 に答える 3

1

このコンテキストでの「シンボル」とは、[AssemblyName].PDBファイルに格納されている関数逆参照インデックスを意味します。デバッグ シンボルは、例外が発生した場合に詳細なスタック トレースを生成するために使用されます。製品リリース コードは、パフォーマンスとセキュリティ上の理由から、ファイル/シンボルをデバッグせずに展開されます。

.NET アプリケーションを開発する場合、デバッグ モードでビルドすると、マネージ コードのデバッグ シンボルがビルドされます。ただし、OS レベルの機能のシンボルはデフォルトではインストールされません。OS レベルの呼び出しを行っていて、OS をデバッグできるようにしたい場合は、MSDNで Windows デバッガー シンボルを入手できます。

于 2012-12-13T17:05:52.953 に答える
0

Visual Studio シンボル ファイルは、実行可能ファイル (DLL、.EXE、またはその他の種類) のビルド時にリンカーによって生成される .pdb 拡張子を持つファイルです。

これらのファイルには、他の情報ストリームの中でも、アセンブリ コードとソース コード行の間の関連付けが含まれているため、デバッグには一致する .pdb ファイルが必要です。

.pdb ファイルの詳細については、http://support.microsoft.com/kb/121366を参照してください。

サーバー側のシナリオをデバッグするには、.pdb ファイルをビルドからサーバーにコピーする必要があります。

于 2012-12-13T17:08:41.243 に答える
0

これは、デバッガーがその DLL 内の関数 (「シンボル」) の名前を認識していないことを意味します。

于 2012-12-13T17:06:52.337 に答える