1

.NET アプリがあります。一部の特定のマシンで、アプリケーションが応答しなくなりました。ただし、タスク マネージャーでは、アプリは (「応答なし」ではなく) 「アクティブ」と表示されます。タスク マネージャーでも、プロセスがプロセッサの 10% を使用し続けていることがわかります。手がかりはありませんが、それが何をしているのか?

どのコードが呼び出されているか、またはプロセスが現在何をしているか (コール スタック?) を確認する方法はありますか?

編集: マシンがネットワーク経由で接続されていないため、リモート デバッガーを使用できないようです。インターネット経由のデバッグはサポートされていません。CPU-analyzer.exe プログラムは素晴らしいようですが、動作させることができませんか? ダンプ ファイルを作成し、windb で分析しました。これが出力です。

.................................................WARNING: rsaenh overlaps cryptsp

警告: RpcRtRemote は rsaenh と重複しています ......警告: WindowsCodecs は System_Drawing_ni と重複しています ...........警告: msdart は shfolder と重複しています ...警告: comsvc​​s は oledb32 と重複しています ..... ..........警告: dhcpcsvc6 は dhcpcsvc とオーバーラップします .........警告: apphelp は GdiPlus とオーバーラップします .........警告: winhttp は Faultrep とオーバーラップします.WARNING: webio オーバーラップ comctl32_71bf0000 ............. ...... wow64win!NtUserPeekMessage+0xa: 00000000`732efdea c3 ret 0:000> !analyze -v


  • *
  • 例外分析 *
  • *

* 警告: AppName.exe のチェックサムを確認できません エラー: モジュールの読み込みは完了しましたが、AppName.exe のシンボルを読み込めませんでした 警告: GdiPlus.dll のシンボル タイムスタンプが間違っている 0x4ce7c496 0x4f9235ab *警告: comsvc​​s.dll のシンボル タイムスタンプが間違っている 0x4a5bdf81 0x4a5bda2e

FAULTING_IP: +a7d01d0 00000000`00000000 ?? ???

EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 0000000000000000 ExceptionCode: 80000003 (ブレーク命令例外) ExceptionFlags: 00000000 NumberParameters: 0

FAULTING_THREAD: 0000000000001678

PROCESS_NAME: AppName.exe

OVERLAPPED_MODULE: 'msdart' と 'shfolder' のアドレス領域が重複しています

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} ブレークポイント ブレークポイントに到達しました。

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - 1 つ以上の引数が無効です

MOD_LIST:

NTGLOBALFLAG: 0

APPLICATION_VERIFIER_FLAGS: 0

MANAGED_STACK: !dumpstack -EE エクスポート ダンプスタックが見つかりません

ADDITIONAL_DEBUG_TEXT: スレッド:[PSEUDO_THREAD] のフレーム:[0] からの属性 [Is_ChosenCrashFollowupThread] に基づいて設定されたフォローアップ

LAST_CONTROL_TRANSFER: 00000000732cadb3 から 00000000732efdea まで

BUGCHECK_STR: APPLICATION_FAULT_STACKIMMUNE_NOSOS

PRIMARY_PROBLEM_CLASS: スタック免疫

DEFAULT_BUCKET_ID: スタック免疫

STACK_TEXT:
00000000 00000000 0000000000000000 不明!AppName.exe+0x0

SYMBOL_NAME: 不明!AppName.exe

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: 不明

IMAGE_NAME: 不明

DEBUG_FLR_IMAGE_TIMESTAMP: 0

STACK_COMMAND: ** 疑似コンテキスト ** ; キロバイト

FAILURE_BUCKET_ID: STACKIMMUNE_80000003_unknown!アンロード

BUCKET_ID: X64_APPLICATION_FAULT_STACKIMMUNE_NOSOS_unknown!AppName.exe

フォローアップ: MachineOwner

これが原因でしょうか:「msdart」と「shfolder」のアドレス領域が重複していますか??

4

4 に答える 4

0

問題は、マルチスレッドのデッドロックでした。メインウィンドウの下にエラーが表示されました。エラーで [OK] をクリックできず、メイン ウィンドウがエラー ウィンドウが閉じられるのを待っていたため、アプリがハングしました ...

タスク マネージャーでアプリをシャットダウンしているときに、画面記録によって実際のエラーを特定しました。1 秒もかからずにエラー ウィンドウが表示され、記録を再生することでエラーの正確な内容を確認し、修正することができました。

于 2013-06-05T11:10:04.233 に答える