0

リリース フォルダーからアプリケーションを実行しようとすると、アプリケーションが頻繁にクラッシュします。

ログを try catch ブロック内に配置してキャプチャしましたが、それらはすべて 1 つのメソッドを指していました。詳細な問題は私の以前の投稿にあります。

次に、WinDbg を使用して実行可能ファイルを添付し、何がアプリケーションをクラッシュさせているのかを正確に確認することにしました。現在、WinDbg からの情報はわかりにくいようです。

(13e4.1444): アクセス違反 - コード c0000005 (最初のチャンス) 最初のチャンスの例外は、例外処理の前に報告されます。この例外は予期され、処理される場合があります。*** エラー: シンボル ファイルが見つかりませんでした。デフォルトでは、E:\VCS\DeskconWSP\Deskcon\bin\Release\tinyWRAP.dll のシンボルをエクスポートします - eax=0e7e1c00 ebx=0d83d918 ecx=0d835b70 edx=0cce8ce0 esi=0d835b70 edi=ffffffff eip=00000000 esp=0e4dfa4c ebp=0epl 4 =0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010202 00000000 ?? ???

このデバッグ情報を使用する方法に関する参照またはポインタはありますか?

4

1 に答える 1

4
  1. I mean this in the best way possible, but you need to read-up on WinDbg (see WinDbg A-Z). It has a huge learning curve, but it's really useful once you get used to it.

  2. You need to configure WinDbg to load in the debug information for tinyWRAP.dll. There should be a file called tinyWRAP.PDB, assuming you're the developer for this file. Open File->Symbol Path and add as needed.

  3. Microsoft supports a symbolserver (i.e., PDB files) for their own binaries. Add this "path" to the WinDbg symbol server path and WinDbg will download whatever it can find from MS: SRV*C:\SymbolServer\symserver*http://msdl.microsoft.com/download/symbols

  4. Access violation just means the program is trying to access heap memory that is shouldn't; i.e., memory allocated for another process.

e.g., if you're doing arithmetic on a pointer to an integer without dereferencing it first, you'll end up pointing the variable to some other location which the process may not have access to.

You'll almost never see this in a purely managed program, but if you're interacting with native DLLs or code then this may give you a hint of what's going on.

于 2012-06-15T13:28:55.817 に答える