windbg setzen bedingter Haltepunkt
Ich möchte einen bedingten breakpoint in windbg.
Zum Beispiel können sagen, LoadLibrary-API.
Wie kann ich setzen, breakpoint, so dass es, sollte es, Wann immer user32.dll geladen bekommen.
> x kernel32!LoadLibraryW
Wird es einige geben, die Adresse [XXXX]
Nun, ich kann Haltepunkt als
> bu [XXXX]
aber dies traf für alle Anrufe zu LoadLibraryW.
Anregungen.
InformationsquelleAutor anand | 2009-09-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie nicht von einem bedingten Haltepunkt verwendet wird, auf einen user32.dll da es zugeordnet wird, in den Adressraum relativ früh und die erste debugger-breakpoint Trigger nach, dass (soweit ich weiß).
vorausgesetzt, Sie können die Spur der moment user32.dll geladen ist, können Sie überschreiben-Modul Pause so:
was Sie tun können, lassen Sie Ihre app bekommen begann mit einem boostrapper Anwendung und anschließend die windows-debugger Pause auf user32.dll Last. verwenden Sie einfach die-o-Befehlszeilenoption oder
.childdbg 1
Erweiterung Anruf zu initiieren Debuggen von child-Prozessen und haben es begonnen, mit cmd.exe zum Beispiel:nur machen debugger halt bei seinen ersten Haltepunkt (nicht -g-Befehlszeilenoption) und set Modul-break-Bedingung, wie oben gezeigt, den Ersatz von user32 mit einer dll-name Ihrer Wahl, oder geben Sie keine Namen, um es zu brechen, die auf Last der jedes Modul (mit freundlicher Genehmigung der debugger.chm).
Ich fand einen anderen Weg.Wir können einen string-Vergleich.Wenn die Zeichenfolge ist user32.dll noch vor der Pause . wir können festlegen, bedingten Haltepunkt verwendet wird, wie >bu XXXXXX "; /mu ${/v:MyAlias} poi(@esp+0x4*1); .if ( $spat( \"${MyAlias}\", \"*User32*\" ) != 0 ) {;.echo *** LoadLibrary AUFGERUFEN,*** ;.printf \"%mu\\n\", dwo (ESP + 0x04*1);.echo } .else { g }"
InformationsquelleAutor deemok
Ich bin ein wenig verwirrt durch den text und header, die in Ihrer Frage. Aber angenommen, Sie wollen einen bedingten Haltepunkt setzen, sollten Sie einen Blick auf die Dokumentation verursachen, es geht in viele Details zu diesem Thema.
InformationsquelleAutor Brian Rasmussen