查找谁调用系统功能

时间:2016-10-26 13:30:14

标签: c++ debugging ntdll

我有一个使用VisualStudio 2015开发的C ++应用程序(更新2)。

使用AMD Code XL进行性能分析表明,该程序将近20%的时间花在RtlUpcaseUnicodeToMultiByteN函数上,来自模块ntdll.dll。显然它将unicode tsrings转换为大写。

因为花那么多时间做这件事是没有意义的,我需要知道谁在调用这个函数。 事实证明这并不容易。

我想要做的是设置断点,然后查看调用堆栈。但是,如果没有源代码,我无法以通常的方式设置它。

我尝试过Windbg,但堆栈跟踪基本没用。

然后我发现is有一种设置"函数断点的方法"在VisualStudio中;但该计划从未打破过;即使"模块"窗口显示ntdll.dll为"符号加载"状态。

我还能做些什么?

0 个答案:

没有答案