Server 2003 でサービスとして実行される 64 ビット アプリケーションがあります。
VS プロファイラーまたは windbg をアタッチすると、以下のようなコールスタックが多数表示されます。デバッガー (またはプロファイラー) で生成されたプロセスがデバッグ ヒープなどを使用することは理解していますが、このサービスは OS によって開始され、私はそれにアタッチしているだけなので、そうではありません。
スタックを巻き戻す理由がわかりません。そして、プロファイラーは、測定可能な量の時間がそれを行うために費やされていることを示しています. いくつかの詳細情報:
• これらは、Server 2003 で動作する vc9 で構築されたリリース ビットです。
• システム環境変数 _NO_DEBUG_HEAP が 1 に設定されている。
• Microsoft シンボル サーバーを使用しています。
スタック トレースをキャプチャするのはなぜですか? ログを記録しているようですが、どこにあるのかわかりません。
私の目的は、アプリが実際にスタックを巻き戻していることを確認し、それが正しい場合は回避することです。
何か案は?
コールスタック
ntdll!RtlVirtualUnwind
ntdll!RtlpWalkFrameChain
ntdll!RtlCaptureStackBackTrace
ntdll!RtlpCaptureStackTraceForLogging
ntdll!RtlLogStackBackTrace
ntdll!RtlDebugAllocateHeap
ntdll!RtlAllocateHeapSlowly
ntdll!RtlAllocateHeap
MSVCR90!malloc
MSVCR90!operator new