2009-04-03 17 views
0

Ich versuche, einige Probleme auf Computern zu beheben, auf die ich keinen Zugriff habe. Die Probleme sind sehr zeitweilig und lokal nicht reproduzierbar. Ich denke daran, sie zu bitten, WinDbg zu installieren, damit sie einen Stacktrace/Dump des Prozesses generieren können. Ist das der beste Weg? Welchen Ansatz haben Sie benutzt, um einem solchen Problem auf den Grund zu gehen?Fehlersuche aus der Ferne

Antwort

0

Ich endete beim Erstellen einer .bat-Datei, die cdb.exe (in WinDbg enthalten) verwendet, um die Dumps zu generieren, die ich brauche. Es funktioniert perfekt und ich brauche nie eine Remote-Maschine zu berühren. Noch besser, der Benutzer benötigt kein technisches Wissen. Installieren Sie WinDbg und führen Sie die .bat-Datei aus.

0

Wenn Sie an einem Windows-System arbeiten, können Sie den Besitzer des anderen Computers bitten, Ihrem Computer den Remote-Desktop-Zugriff zu erlauben. So können Sie auf alle Details des anderen Systems genauso zugreifen wie auf Ihr eigenes System. Wenn Sie auf einem Linux-Rechner arbeiten, können Sie über den ssh-Client auf die Befehlszeile des anderen Rechners zugreifen, für den der Besitzer des anderen Rechners einem Benutzer ssh Zugriffsrechte erteilen und Ihnen diesen Benutzernamen und das Passwort mitteilen muss. Dann, indem Sie das root-Passwort weiterfragen, können Sie auf der Kommandozeile eines anderen Systems arbeiten, das auf Linux-Maschinen am mächtigsten ist.

0

Wenn Sie es in Ihren Code und sein Windows bauen können, könnten Sie haben es automatisch einen Crash-Dump erzeugen, wenn er abstürzt. Um dies zu tun, müssten Sie Ihren eigenen Exception-Handler schreiben und mit der SetUnhandledExceptionFilter-API-Funktion darauf zugreifen. Dann kann Ihr Handler MiniDumpWriteDump aufrufen, um einen Mini-Dump für Sie zu schreiben. Wenn der Benutzer dir den Mini-Dump schickt, kannst du ihn in windbg laden und den Stack-Trace und andere Informationen bekommen (mit etwas Glück).

Ich habe es erfolgreich in der Vergangenheit verwendet, aber es ist schwierig. Insbesondere müssen die kompilierten Symbole auf Ihrem Computer diejenigen sein, die im verteilten Build vorhanden waren.

+0

Leider hängt die Anwendung, nicht abstürzt. –

+0

Sie können Minidump jederzeit aufrufen (muss kein Absturz sein). Vielleicht könnten Sie es mit einem Tastendruck oder einem anderen Ereignis verbinden? –