Frage

Ich habe eine Anwendung, die mehrere untergeordnete Prozesse laicht. Bevor ein Kind startet, erstelle ich stdout und stderr in eine Log-Datei-Handles (zum Beispiel, wenn ich bin Proca zu starten, ich schaffen Griffe logA.log). Ich habe diese Griffe an den untergeordneten Prozessen.

Durch die Zusammenarbeit mit ProcExplorer suchen, kann ich sehen, dass jeder Kind-Prozess hat Griffe jeder Protokolldatei (so Proca hat Griffe LOGA logb, etc.). Dies schafft später Probleme.

Ich möchte in der Lage sein zu sehen, wenn Proca den Griff zu logb schafft. Irgendwelche ideeas?

War es hilfreich?

Lösung

Eine mögliche Lösung kann sein, dass Griff zwischen untergeordneten Prozessen in Datei geteilt beacause sie durch den übergeordneten Prozess erstellt werden.

Das ist die einzige Lösung, die ich sehen kann, weil ich sehe nicht, wie Sie multpile Griff haben kann (eine auf jeder Log-Datei) in jedem Kind-Prozesse, wenn Sie so gestalten, dass Sie nur eine var es handhaben müssen.

Warum Ihre Griffe in den untergeordneten Prozessen nicht zu schaffen? Ich weiß, es pricesly auf die Frage reagiert aber offensichtlich, wenn Proca nur die Griffe müssen LOGA es besser, den Griff zu LOGA das Kind Prozess erstellen Proca.

Andere Tipps

Sind Sie fragen, wie Sie in einem Debugger zu brechen, wenn Kind-Prozess Proca den Griff zu logb schafft? Ich gehe davon aus, dass Sie mit Windows arbeiten, da Sie Process Explorer erwähnt.

Eine Möglichkeit, dies zu tun, ist die Image File Execution Options Registrierung Schlüssel angeben, dass jedes Mal procA.exe gestartet wird, wollen Sie den Debugger starten. Wenn der Debugger gestartet wurde, können Sie einen Haltepunkt in dem Code festgelegt, die den Griff zu logb erzeugt und dann lassen Sie den Prozess fortzusetzen. Dies funktioniert mit jedem Debugger (wie WinDbg oder ntsd oder Profilierwerkzeuge wie AQTime), nicht nur Visual Studio.

Eine andere Möglichkeit, dies zu tun ist, um den Debugger sagen an alle untergeordneten Prozesse zu befestigen. Es gibt mehrere Möglichkeiten, um zu ermöglichen, mit WinDbg oder ntsd . Auf diese Weise legen Sie den Debugger an den übergeordneten Prozess, und es wird auf das Kind Prozess Proca Auto befestigen, und Sie können einen Haltepunkt in dem entsprechenden Code festgelegt.

Eine weitere Möglichkeit ist, um vorübergehend den Code zu ändern, um eine Unterbrechungs Ausnahme zu erzeugen, mit der DebugBreak() Funktion, wenn es um den Griff zu logb schafft, dann einen Debugger just-in-Time-Debuggen mit anhängen. Beachten Sie, dass, wenn Ihr Code strukturierte Ausnahmen ohne Ausnahme Filterausdruck behandelt (die eine schlechte Idee ist), das wird nicht funktionieren, und überraschende Ergebnisse (Deadlock, Speicherverlust, etc.) aufweist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top