Что такое символ `myLibrary! __ scrt_stub_for_is_c_termination_complete + 0x12345` - PullRequest
8 голосов
/ 02 апреля 2019

Символ myLibrary!__scrt_stub_for_is_c_termination_complete+0x12345 появляется в трассировке стека сбойного приложения. Это C ++, скомпилированный с MSVC2015 и интенсивно использующий Qt.

myLibrary явно не реализует ничего с таким именем.

Google показывает некоторые совпадения с этим именем, поэтому, очевидно, это не относится к этому одному приложению. Но я не могу найти объяснения этому.

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Это диагностика "не знаю, где он разбился". Смещение + 0x12345 слишком велико. Не редкость, вам нужны хорошие PDB для точного отслеживания стеков. Без них он ничего не знает о написанном вами коде и может идти только по именованным точкам входа DLL.

Поскольку сбой, по-видимому, обнаружен в библиотеке времени выполнения C, вам вполне может повезти, если вы включите Microsoft Symbol Server и дадите ему возможность создавать необходимую вам PDB. Предполагая, что вы открыли мини-дамп в VS, используйте Инструменты> Параметры> Отладка> Символы, чтобы включить сервер. Общие рекомендации и советы WinDbg доступны на этой странице MSDN .

0 голосов
/ 04 апреля 2019

Имя библиотеки: myLibrary
Имя функции: __scrt_stub_for_is_c_termination_complete
Расстояние от смещения функции: + 0x12345

Если вы войдете в режим разборки, то увидитеадрес функции

Также вы можете увидеть в (быстром) имени функции, как и при разборке

вы можете предположить исключение, вызванное определенной функцией икакая строка.

Осторожно: если вы отлаживаете в Release build, будет трудно найти, какой код вызывает исключение.В этом случае вы можете сравнить вашу сборку между Debug и Release (я не могу объяснить, как она работает, пока не опишу).Используйте Debug Build для упрощения отладки.

Happy Coding:)

...