Je ne peux pas faire le code source de montrer dans windbg quand j'ai pipe ntsd -d
sur la cible par l'entremise windbg -k
, mais il fonctionne quand je debug localement.
Je veux de débogage de la première exécution de code de Winlogon.exe et LSASS.exe. Mais pour le rendre facile à reproduire le problème, j'ai fait cette installation:
- J'utilise le CrashMe exemple d'application, avec des sources et des symboles pré-construit, avec copie à C:\CrashMe sur la cible et de l'hôte
- J'utilise Windows des outils de Débogage pour Windows (DTW) version 6.12.0002.633 partout.
- La cible est en cours d'exécution de Windows XP SP3, l'hôte Windows 7 ultimate.
- Chaque chemin d'accès et des paramètres est le même sur les deux machines : chemin de DTW et le chemin d'accès à crashme.
- J'ai toujours utiliser le chemin d'accès complet (comme c:\dtw\ntsd.exe).
- Je lance un XP dans une machine virtuelle, démarré avec
/noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
Je suis en mesure de débogage localement avec cette commande, lancé à partir de C:\CrashMe:
windbg -g -G -srcpath C:\CrashMe -y C:\CrashMe debug\CrashMe.exe
Je peux lancer Windows XP en machine virtuelle et de vous y connecter avec cette commande:
windbg -n -k com:pipe,port=\\.\pipe\com_1,reconnect -srcpath SRV*;C:\CrashMe -y
c:\windows\system32;c:\windows\symbols;C:\CrashMe\debug
Mais j'ai besoin de déboguer une machine distante. Sur la cible, j'ai l'un de ces choix:
- Debug par
-server
et-remote
- La rupture d'un processus en cours d'exécution
- L'utilisation de l'Image File Execution Options (IFEO).
Dans chacune de ces options, je peux voir les symboles (x crashme!*
travaux).
Je cannont utilisation #1 (-server
) ou #2 (breakin.exe <pid>
), parce que je veux déboguer le code de démarrage d'un fournisseur d'authentification, j'ai donc besoin d' LSASS.exe
de moins ntsd -d
. Je ne peux pas le laisser courir et de joindre plus tard.
Ma compréhension est que j'ai besoin d'utiliser IFEO. À l'aide de gflags.exe au lieu de modifier manuellement le registre, je exécutable options de
c:\dtw\ntsd -d -G -lines -x -y c:\symcache;c:\windows\system32 -n -srcpath C:\CrashMe\
- Je peux diviser la demande, mais les points d'arrêt j'ai mis ne sont jamais touchés.
- J'ai peut -
.open
n'importe quel fichier, mais je ne peux pas utiliser le fichier pour définir un point d'arrêt. - Je peux x (examiner) n'importe quel symbole
- Je ne peux pas voir le code source.
Comment puis-je voir mon code source de la DLL d'un processus en cours d'exécution en vertu de l' ntsd -d
par windbg -k
?