Проблема с загрузкой символов отладки в WINDOWS. Я не смог загрузить двоичные файлы операционной системы WINDOWS .pdb в visual studio - PullRequest
1 голос
/ 06 января 2010

Я работаю в софтверной компании над системным программным продуктом.Позавчера произошел сбой этого продукта и было показано ядро.

Чтобы узнать точную проблему, я хочу знать полный стек ядра с именами функций (kernel32.dll, ntdll.dll .. не отображаются имена функций).Я загрузил символы отладки WINDOWS с сайта Microsoft.http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#f

Загружены следующие три пакета 1. WindowsServer2003-KB933548-v1-ia64-symbols-NRL-ENU.exe 2. WindowsServer2003-KB933548-v1-x86-symbols-NRL-ENU.exe 3. WindowsServer2003-KB933548-v1-x86-symbols-NRL-ENU-DEBUG.exe.

Попытка загрузить символы отладки для двоичных файлов ОС WINDOWS, но не удалось.Пример: для ntdll.dll я пытался загрузить соответствующий файл ntdll.pdb, но из-за ошибки Visual Studio, т. Е. «Файл символов ntdll.pdb не соответствует модулю)

Операционная система: я использую WINDOWS 2003 SP2.

Пожалуйста, помогите получить полный стек с именами функций.

Базовый стек после сбоя на моем системном программном обеспечении.

kernel32.dll! 77e4bef7 () Asm [Ниже могут быть кадрыневерно и / или отсутствует, символы не загружены для kernel32.dll] Asm kernel32.dll! 77e4bef7 () Asm kernel32.dll! 77e46cfd () Asm ntdll.dll! 7c827d29 () Asm ntdll.dll! 7c83d266 () Asm ntdll.dll! 7c83d2b1 () Asm ntdll.dll! 7c82d308 () Asm ntdll.dll! 7c82d30f () Asm ntdll.dll! 7c82f380 () Asm ntdll.dll! 7c82d30f () Asm ntdll.dll! 7c82f557 () Asm ntdll.dll! 7c82a5() Asm ntdll.dll! 7c82daee () Asm ntdll.dll! 7c82f51a () Asm ntdll.dll! 7c82f2c3 () Asm kernel32.dll! 77e6518d () Asm ntdll.dll! 7c829cc2 () Asm ntdll.dll! 7c829de7 ()Asm ntdll.dll! 7c829e02 () Asm ntdll.dll! 7c827899 () Asm ntdll.dll! 7c82ec4a () Asm msvcr80.dll! 781787e4() Asm msvcr80.dll! 78178823 () Asm sal.dll! SAL_DebugOutput (const char * fmtstr = 0x66009318, ...) Строка 643 C ++ sal.dll! MapSystemError (unsigned long dwerr = 0x00000040) Строка 130 + 0xb байт C ++

sal.dll! MapLastError () Строка 146 + 0xc байт C ++

sal.dll - это мой программный двоичный файл, и мне удалось загрузить символ отладки для sal.dll.

Я жду ваших предложений.

1 Ответ

2 голосов
/ 13 января 2010

Вы захотите использовать сервер символов, чтобы получить это, а не загружать статический набор. (Статический набор быстро устаревает при обслуживании.)

Вот статья в КБ об использовании Symbol Server: http://support.microsoft.com/kb/311503

Для этого есть поддержка как в Visual Studio, так и в Windbg.

...