Поиск, кто вызывает системную функцию

У меня есть приложение C ++, разработанное с VisualStudio 2015 (обновление 2).

Профилирование с помощью AMD Code XL показывает, что программа тратит почти 20% своего времени на функции RtlUpcaseUnicodeToMultiByteNиз модуля ntdll.dll, По-видимому, он преобразует строки Unicode в верхний регистр.

Поскольку бессмысленно тратить на это столько времени, мне нужно знать, кто вызывает функцию.
Оказывается, это не легко.

То, что я хотел бы сделать, это установить точку останова, а затем увидеть стек вызовов. Тем не менее, я не могу установить его обычным способом без исходного кода.

Я попробовал Windbg, но трассировка стека была практически бесполезна.

Тогда я нашел там является способ установить «точку останова функции» в VisualStudio; но программа никогда не ломалась; хотя окно «модулей» показывало ntdll.dll как статус «символы загружены».

Что еще я могу сделать?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]