Je suis en train de déboguer 'smartgit for windows'. Je veux savoir comment il appelle 'git' (commande il passe à git). Je démarre VS et attacher le processus de smartgit. Je suppose qu'il communique avec git par Windows pipe, et d'autres API comme ReadFile
et WriteFile
et ainsi de suite, donc définissez des points d'arrêt à ces fonctions. Après quelques options, je coche 'Just My Code' et supprime tous les modules d'exclusion. Dans les paramètres de symboles, je télécharge des symboles. et je peux m'assurer que 'Kernel32.pdb' a été chargé. 'smartgit.exe' (Win32): Loaded 'Q:\Program Files (x86)\SmartGit\bin\smartgit.exe'. Module was built without symbols. 'smartgit.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Symbols loaded. 'smartgit.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Symbols loaded. 'smartgit.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Symbols loaded. 'smartgit.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Symbols loaded.
Pause à Win32-API pour inspecter les comportements du processus
[email protected]: 765EF0C0 8B FF mov edi,edi
mais je suis le point de vue du code disasm quand bps ont été déclenchées. Je suis sûr que j'ai coché l'option "Afficher le code source".
765EF0C2 55 push ebp
765EF0C3 8B EC mov ebp,esp
765EF0C5 6A FE push 0FFFFFFFEh
765EF0C7 68 C0 52 68 76 push 766852C0h
POURQUOI? et comment voir le code C de ReadFile
, je veux savoir ce qu'il (smartgit) lit et écrit. Donc, j'inspecte à travers lpBuffer
.
Il n'est pas toujours évident de savoir ce que deux-par-quatre est nécessaire. Décrivez en vos propres termes ce que vous pensez que «Module a été construit sans symboles» pourrait signifier. –