Как мне показать исходный код в windbg через ntsd -d?

Я не могу показать исходный код в windbg, когда я передаю ntsd -d на цель через ] windbg -k , но он работает, когда я отлаживаю локально.

Я хочу отладить самое первое выполнение кода Winlogon.exe и LSASS.exe. Но чтобы упростить воспроизведение проблемы, я сделал следующую настройку:

  • Я использую пример приложения CrashMe с исходным кодом и заранее созданными символами, скопированными в C: \ CrashMe на обоих целевых устройствах. и хост
  • Я везде использую инструменты отладки Windows для Windows (DTW) версии 6.12.0002.633.
  • Целевой объект работает под управлением Windows XP SP3, основной Windows 7.
  • Все пути и настройки одинаковы на обеих машинах: путь к DTW и путь к аварийному завершению.
  • Я всегда использую полный путь (например, c: \ dtw \ ntsd.exe).
  • Я запускаю XP на виртуальной машине, загруженной с помощью / noexecute = optin / fastdetect / debug / debugport = com1 / baudrate = 115200

Я могу выполнять отладку локально с помощью этой команды, запущенной из C: \ CrashMe:

windbg -g -G -srcpath C:\CrashMe -y C:\CrashMe debug\CrashMe.exe

Я могу запустить виртуальную машину Windows XP и подключиться к ней с помощью этой команды:

windbg -n -k com:pipe,port=\\.\pipe\com_1,reconnect -srcpath SRV*;C:\CrashMe -y   
c:\windows\system32;c:\windows\symbols;C:\CrashMe\debug  

Но мне нужно отладить удаленную машину. На целевой машине у меня есть следующие варианты:

  1. Отладка через -сервер и -удаление
  2. Прерывание работающего процесса
  3. Использовать параметры выполнения файла изображения (IFEO).

В каждой из этих опций я вижу символы ( x crashme! * работает).

Я не могу использовать №1 ( -сервер ) или №2 ( breakin.exe ), потому что я хочу отладить код запуска поставщика аутентификации, поэтому мне нужно запустить LSASS.exe под ntsd -d . Я не могу позволить ему запускаться и подключаться позже.

Я понимаю, что мне нужно использовать IFEO. Используя gflags.exe вместо изменения реестра вручную, я установил параметры исполняемого файла на

c:\dtw\ntsd -d -G -lines -x -y c:\symcache;c:\windows\system32 -n -srcpath C:\CrashMe\ 
  • Я могу сломать приложение, но установленные мной точки останова никогда не срабатывают.
  • Я могу .open любой файл, но Я не могу использовать этот файл для установки точки останова.
  • Я могу x (исследовать) любой символ
  • Я не вижу исходный код.

Как мне увидеть исходный код моей DLL процесса, запущенного под ntsd -d - windbg -k ?

28
задан durron597 18 July 2015 в 21:22
поделиться