Wie kann ich einen Prozess in Windows verfolgen/profilieren?

Wie kann ich einen Prozess in Windows verfolgen/profilieren?

Bei der Untersuchung von SQL Server-Problemen finde ich es gelegentlich hilfreich, den Visual Studio-Debugger daran anschließen zu können und anhand des Aufrufstapels herauszufinden, was er tut (die öffentlichen Symbole sind verfügbar und häufig lassen sich aus den Methodennamen nützliche Informationen ableiten).

Ein gutes Beispiel für die Art von internen Informationen, die abgeleitet werden können, istin diesem Blogbeitragdas meine Versuche inspirierte.

Dies kann jedoch ein ziemlich zeitaufwändiger und langwieriger Prozess sein. Normalerweise führe ich den betreffenden Code in einer Schleife aus, hänge den Debugger an, breche dann immer wieder ab und fahre fort, bis ich auf einen Aufrufstapel stoße, der für die zu untersuchende Angelegenheit interessant aussieht. Dann kann ich den Code durchgehen und mir die aufgerufenen Methodennamen ansehen. Dies dauert jedoch ewig.

Gibt es eine Möglichkeit, dies zu automatisieren, sodass ich einfach alle aufgerufenen Methoden für einen kurzen Zeitraum protokollieren und dann anschließend die Protokolldatei überprüfen kann?

Antwort1

Wenn ich mich nicht irre, suchen Sie wahrscheinlich nach Process Monitor (auch bekannt als procmon). Sie erhalten es vondiese Microsoft-Website.

Insbesondere die Menüoption „Stack Summary“ enthält diese Art von Informationen. Weitere Einzelheiten finden Sie im AbschnittPM2-6: Entrollen des Stapels

Bildbeschreibung hier eingeben

Antwort2

DerProfilerin höheren Versionen von Visual Studio können hierfür verwendet werden.

Beispielausgabe

Bildschirmfoto

(Unddie Antwort hierzeigt, warum dies nützlich ist)

Oder zusätzlich dieWindows Performance Toolkitist kostenlos und kann auch das Gleiche und noch mehr. Eine gute Videoserie dazu finden Sie unterhttps://channel9.msdn.com/Search?term=Defrag%20tools%20wpt#ch9Search

verwandte Informationen