2

VisualStudio 2015 (update 2) で開発された C++ アプリケーションがあります。

AMD Code XL を使用してプロファイリングすると、プログラムがその時間のほぼ 20% をRtlUpcaseUnicodeToMultiByteNモジュールから関数に費やしていることがわかりますntdll.dll。どうやら、Unicode tsrings を大文字に変換します。

そんなに時間をかけても意味がないので、誰が関数を呼び出しているかを知る必要があります。簡単ではないことがわかりました。

私がやりたいことは、ブレークポイントを設定してから、コール スタックを確認することです。ただし、ソースコードがないと、通常の方法で設定することはできません。

Windbg を試してみましたが、スタック トレースは基本的に役に立ちませんでした。

次に、VisualStudio で「関数ブレークポイント」を設定する方法があることを発見しました。しかし、プログラムが壊れることはありませんでした。「モジュール」ウィンドウがntdll.dll「シンボルがロードされました」ステータスとして表示されたとしても。

これ以上何ができますか?

4

0 に答える 0