Freigeben über


Verwenden von Logger.exe

Eine Möglichkeit zum Aktivieren der Protokollierung besteht darin, das eigenständige Logger.exe-Programm auszuführen. Dies ist im Wesentlichen ein sehr kleiner Debugger, der nur ein einzelnes Ziel verwenden kann. Um sie auszuführen, fügen Sie den Namen der Zielanwendung in die Befehlszeile ein:

logger Target 

Wenn dies aktiviert ist, wird die angegebene Anwendung geladen und Code in die Zielanwendung eingefügt, der zu einer Routine springt, die Logexts.dll im Zielanwendungsprozess lädt und initialisiert. Dies wird als "Injizieren der Protokollierung in die Zielanwendung" bezeichnet.

Das Logger.exe-Hilfsprogramm und das modul Logexts.dll sind die beiden Komponenten dieses Logger-Fahrzeugs. Sie kommunizieren über einen freigegebenen Speicherabschnitt, der die Ausgabedateihandles, die aktuelle Kategoriemaske und einen Zeiger auf den Protokollausgabepuffer enthält.

Ein Fenster mit dem Namen Protokollierung (Debugger) wird angezeigt. In diesem Fenster wird der Fortschritt der Protokollierung angezeigt.

Dialogfeld "Einstellungen ändern"

Nachdem die Initialisierung abgeschlossen und die erste Anzeige abgeschlossen ist, wird das Dialogfeld Einstellungen ändern angezeigt. Dadurch können Sie die Protokollierungseinstellungen konfigurieren. Die verschiedenen Einstellungen werden hier beschrieben:

API-Einstellungen
In dieser Liste werden die verfügbaren API-Kategorien angezeigt. Die hervorgehobenen Kategorien werden protokolliert; die nicht hervorgehobenen Kategorien nicht. Wenn Sie die Protokollierung zum ersten Mal ausführen, werden alle Kategorien hervorgehoben. Bei nachfolgenden Ausführungen verfolgt die Protokollierung jedoch, welche Kategorien für eine bestimmte Zielanwendung ausgewählt werden.

Wenn eine Kategorie deaktiviert ist, werden die Hooks für alle APIs in dieser Kategorie entfernt, sodass kein Leistungsmehraufwand mehr entsteht. COM-Hooks werden nicht entfernt, da sie nicht nach Be willen wieder aktiviert werden können.

Das Aktivieren nur bestimmter Kategorien kann nützlich sein, wenn Sie nur an einer bestimmten Art von Interaktion interessiert sind, die das Programm mit Windows hat, z. B. Dateivorgänge. Dies reduziert die Größe der Protokolldatei und verringert auch die Auswirkungen der Protokollierung auf die Ausführungsgeschwindigkeit des Prozesses.

Protokollierung
Dieser Abschnitt enthält die Optionsfelder Aktivieren und Deaktivieren . Das Deaktivieren der Protokollierung führt dazu, dass alle API-Hooks entfernt werden, um die freie Ausführung des Programms zu ermöglichen. COM-Hooks werden nicht entfernt, da sie nicht nach Be willen wieder aktiviert werden können.

Inklusions-/Ausschlussliste
In diesem Abschnitt wird die Ein-/Ausschlussliste des Moduls gesteuert. Es ist oft wünschenswert, nur die Funktionsaufrufe zu protokollieren, die aus einem bestimmten Modul oder einer reihe von Modulen erfolgen. Um dies zu vereinfachen, können Sie mit Logger eine Moduleinschlussliste oder alternativ eine Modulausschlussliste angeben. Für instance würden Sie eine Aufnahmeliste verwenden, wenn Sie nur Aufrufe von einem oder zwei Modulen protokollieren möchten. Wenn Sie Aufrufe aus allen Modulen mit Ausnahme einer kurzen Liste von Modulen protokollieren möchten, verwenden Sie eine Ausschlussliste. Die Module Logexts.dll und Kernel32.dll sind immer ausgeschlossen, da logger sich nicht selbst protokollieren darf.

Leeren des Puffers
Durch diese Schaltfläche wird der aktuelle Ausgabepuffer geleert. Aus Leistungsgründen wird die Protokollausgabe nur dann auf den Datenträger geleert, wenn der Ausgabepuffer voll ist. Standardmäßig beträgt der Puffer 2144 Bytes.

Da der Pufferspeicher von der Zielanwendung verwaltet wird, erfolgt das automatische Schreiben des Puffers in die Protokolldateien auf dem Datenträger nicht, wenn eine Zugriffsverletzung oder ein anderer nicht wiederherstellbarer Fehler in der Zielanwendung vorliegt. In solchen Fällen sollten Sie versuchen, das Fenster der Zielanwendung zu aktivieren, drücken Sie F12, um dieses Dialogfeld wieder abzurufen, und drücken Sie dann Puffer leeren. Wenn dies nicht der Fall ist, werden die zuletzt protokollierten Funktionen möglicherweise nicht in den Protokolldateien angezeigt.

Gehen
Dies bewirkt, dass die Zielanwendung mit der Ausführung beginnt.

Ausführen der Zielanwendung

Nachdem Sie die Einstellungen ausgewählt haben, wählen Sie Go aus. Das Dialogfeld wird geschlossen, und die Zielanwendung beginnt mit der Ausführung.

Wenn Sie das Fenster der Zielanwendung aktiv machen und F12 drücken, wird die Protokollierung unterbrochen. Dies führt dazu, dass die Zielanwendung einfriert und das Dialogfeld Einstellungen ändern erneut angezeigt wird. Sie können die Einstellungen bei Bedarf ändern und dann auf GEHE drücken, um die Ausführung fortzusetzen.

Sie können die Zielanwendung so lange ausführen lassen, wie Sie möchten. Wenn sie normal oder aufgrund eines Fehlers beendet wird, wird die Protokollierung beendet und kann nicht neu gestartet werden.

Wenn Sie den Vorgang beenden möchten, wählen Sie Datei | Beenden Sie , und wählen Sie Ja aus. Wenn die Zielanwendung noch ausgeführt wird, wird sie beendet.

Einschränkungen der Logger.exe

Wenn Sie die Protokollierung über das Logger.exe-Tool ausführen, wird nur eine Ausgabedatei erstellt– eine LGV-Datei. Es wird keine Textdatei geschrieben. Es wird jedoch eine .txt Datei der Größe 0 erstellt; Dadurch könnte ein textprotokoll überschrieben werden, das zuvor vom Debugger geschrieben wurde.

Die Ausgabedatei wird immer im LogExts-Unterverzeichnis des Desktops platziert. Dieser Speicherort kann nicht geändert werden.

Diese Einschränkungen gelten nicht, wenn Sie die Protokollierung über den Debugger ausführen und Logexts.dll.