WINGBG с XP встроенным, NTDLL.dll Символы не удаются, другие символы затронуты?

StackOverflow https://stackoverflow.com/questions/3604548

Вопрос

Я использую WINGBG с помощью встроенного XP. Попытка привлечения символов операционной системы не удается с сообщением «Файл символа не может быть найден. По умолчанию для экспорта символов для NTDLL.DLL». (Это типично для XP встроенных ???)

У меня нет проблем о местонахождении и загрузке символов и источника для моего собственного кода. Однако STOWPIPIPING через код предлагает, существует серьезное несоответствие между кодом и файлом символов в качестве расположения переменных в памяти, как возвращено DV, не согласны с фактическим содержимым памяти (например, назначить переменную, но впоследствии, адрес То, что претензии DV соответствует, это не отображается без изменений).

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

Это скрытый эффект не нахождение файлов символов NTDLL и используя другой, который не соответствует правильно или есть что-то еще, что может заставить это?

Пример:
.sympath D:/Symbols
.symfix+
.srcpath D:/Symbols ** Yes, currently the source is in with the symbols
.reload
** (defaults to export symbols for ntdll.dll since symbol file can't be found)
bp 00401000 (break at a constructor)
g
(program runs till it hits constructor)
l+t
dv /i /t /V ** look up this pointer memory location to check constructor
** We bring up a memory window at the location the this pointer refers to and
** step through the code, but no changes appear in that memory window
** moreover a local LARGE_INTEGER whose value is set with QueryPerformanceCounter
** also appears unchanged after the call
** when the constructor returns we assign the memory address returned by
** new to a global pointer, whose memory address we look up with dt, but
** after the call that address still has 0 in it

Кто-нибудь может сказать мне, как на самом деле это исправить?

В качестве бокового обратите внимание, мы фактически запускаем CDB в качестве сервера на встроенном устройстве XP и используем опцию «Connect к удаленному сеансу». Вышеуказанные команды выполняются через WINDBG.

Это было полезно?

Решение

ИСПОЛЬЗОВАНИЕ! SYM NOUSY до того, как выясните, почему вы не узнаете, почему он не находит символы для NTDLL.dll. Это совсем возможно, что они просто не проиндексированы на сервере символов, что вообще означает, что вы не повезете (на самом деле нет никого, чтобы связаться, чтобы получить это исправлено).

Что касается ваших других вопросов символа:

1) Это релиз сборка вашего кода? Если это так, это полностью ожидается

2) Если это сборка отладки, вы на 100% уверены, что источник вы указываете на соответствие целевой машине? Убедитесь, что вы на 100% до ответа :)

-скопа

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top