我有一个使用VisualStudio 2015开发的C ++应用程序(更新2)。
使用AMD Code XL进行性能分析表明,该程序将近20%的时间花在RtlUpcaseUnicodeToMultiByteN
函数上,来自模块ntdll.dll
。显然它将unicode tsrings转换为大写。
因为花那么多时间做这件事是没有意义的,我需要知道谁在调用这个函数。 事实证明这并不容易。
我想要做的是设置断点,然后查看调用堆栈。但是,如果没有源代码,我无法以通常的方式设置它。
我尝试过Windbg,但堆栈跟踪基本没用。
然后我发现is有一种设置"函数断点的方法"在VisualStudio中;但该计划从未打破过;即使"模块"窗口显示ntdll.dll
为"符号加载"状态。
我还能做些什么?