Не могу понять, что не так в моем коде

У меня есть файл дампа, который мне удалось создать, из моей DLL, которая создается для любого необработанного исключения.

Когда я сделал что-то вроде int* tt = new int[4]; return int[n]; при n = 4 я бы получил файл дампа, мог бы открыть его и посмотреть, на какой строке выдается ошибка. Это было возможно как непосредственно из выпуска exe, так и из выпуска DLL.

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

Теперь у меня есть файл дампа 900 КБ, и в журнале событий говорится, что ошибка произошла из моего .DLL, но если я открою файл, он не отобразит никакого исходного кода.

Стек вызовов

KERNELBASE.dll! RaiseException () + 0x3d байт
clr.dll! RaiseTheExceptionInternalOnly () + 0x18f байт
clr.dll! IL_Throw () + 0xe2 байта
000007fe81f65fd7 ()
00000000034d1610 ()
000000002d06ecb8 ()
436f93ce00050011 ()
436f93cf00110012 ()
000000002d06ec50 ()
00006d930c4f7680 ()
clr.dll! InlinedCallFrame :: `vftable ‘()
000000002d06f3d8 ()

что совершенно не помогает мне понять, откуда в DLL происходит моя ошибка.
Другая проблема с отладкой заключается в том, что это происходит только на live-ПК, но никогда на моей системе отладки. Может кто-нибудь помочь мне найти способ отладки этого? Кажется, это происходит при вызове DLL, но: не каждый раз, только как каждый второй раз (иногда с 1-й попытки, иногда с 5-й). Я полностью потерялся в том, что здесь происходит.

Редактировать:
Обновлен стек вызовов с загруженными символами Microsoft, но я до сих пор не знаю, откуда это может исходить.

0

Решение

Вам нужно загрузить символы для kernelbase.dll. И, возможно, clr.dll.

Предположительно вы используете визуальную студию?
Настройте его для доступа к символам с сервера символов Microsoft: http://msdn.microsoft.com/en-us/library/b8ttk8zy(v=vs.80).aspx

Возможно, вам придется щелкнуть правой кнопкой мыши по элементам в стеке вызовов и сказать ему загружать символы.

Кроме того, обязательно сохраняйте копию файла pdb для всех выпусков программного обеспечения, которые вы делаете.

2

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

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

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