2017-02-14 2 views
1

Ich versuche, einen Breakpoint auf Kernel32 zu setzen! LoadLibraryW oder LoadLibraryA. Ich erhalte ständig:Kann nicht auf LoadLibraryW einen Bp setzen

konnte nicht Fehler beheben bei

Mein Symbolpfad wird auf ‚kernel32 LoadLibraryW‘: SRV * https://msdl.microsoft.com/download/symbols

Irgendwelche Ideen, wie man das Problem lösen?

+0

Das ist komisch. Es funktioniert für mich im Visual Studio Debugger aber nicht WinDBG. –

+0

Es funktioniert für mich in WinDbg 10.0.15003.1001 (sowohl x86 und x64) auf Windows 7. Welche Version und Betriebssystem haben Sie? Sind Sie sicher, dass die Internetverbindung funktioniert? Versuchen Sie, https://msdl.microsoft.com/download/symbols/pingme.txt in Ihrem Browser zu öffnen, und überprüfen Sie mit den Netzwerkwerkzeugen, ob HTTP 200 zurückgegeben wird. Versuchen Sie '! Sym noisy' und' ld * '. Was zeigt dann die Ausgabe von 'lm m kernel *? Versuchen Sie HTTP nur, wenn HTTPS nicht im Symbolpfad funktioniert, –

+1

Sie können es mit x Wildcardasteriskhere finden! Load * w und copypaste den symname wie bu/bp einfügen "cond falls erforderlich" – blabb

Antwort

0

Setzen Sie stattdessen Ihren Haltepunkt in kernelbase.dll.

0

Ich glaube, WinDbg verwendet den Symbolnamen und nicht den exportierten Funktionsnamen beim Auflösen der Adresse. Das verursacht Probleme für einige der Funktionen, die an Ntdll.dll und kernelbase.dll weitergeleitet werden.

Manchmal können Sie "Stub" an den Funktionsnamen anhängen, wenn Sie einen Haltepunkt setzen und manchmal müssen Sie nur wissen, dass die Funktion tatsächlich in einer DLL der unteren Ebene implementiert ist und den Haltepunkt für die Funktion in dieser .dll setzen . Sie können es auch mit Tab-Vervollständigung und einem Namen wie *!functionname* finden.

Verwandte Themen