Wir versuchen, einen w3wp-Speicherauszug mit windbg zu analysieren, und wir haben festgestellt, dass der w3wp-Prozess aufgrund eines Stapelüberlaufs abstürzt. Ich lud die psscor4.dll und bekam den Anrufstapel, indem ich! Clrstack ausgab. Aber ich möchte auch wissen, dass die Parameter an die Methoden übergeben werden. Wenn ich "! Clrstack -p" oder "! Clrstack -a" ausstelle, erhalten wir < keine Daten > für alle Parameter und lokalen Variablen. Irgendeine Idee, warum wir < keine Daten > anstelle der tatsächlichen Werte für die Parameter und lokale Variablen bekommen?! Clrstack -p gibt die Werte der Parameter für die Methoden im Aufrufstack nicht an
11
A
Antwort
9
Wenn Sie einen Release-Build ausführen, können Sie normalerweise Locals und Parameter nicht verfolgen, da sie optimiert und in Registern gespeichert sind. Wenn Sie es wirklich brauchen, können Sie sich den kompilierten JIT-Code ansehen und die Werte in den Registern finden, aber das erfordert eine Menge Buchhaltung.
14
So sind die Freuden des Debuggens optimierten Codes. Wenn Sie "! Sex.mdv" verwenden, erhalten Sie zumindest die Datentypen Ihrer Locals/Args. Dann können Sie! Sos.dso oder! Sosex.mdso ausführen, um die Objekte auf dem Stapel mit ihren Typen zu sehen. Es ist normalerweise nicht so schwierig, die Argumente auf diese Weise aufzuspüren, obwohl es nicht immer funktioniert.
Verwandte Themen
- 1. P = NP: Was sind die vielversprechendsten Methoden?
- 2. p-Werte von mu Parameter in gamlss
- 3. Ajax übergibt die Parameter nicht an PHP
- 4. Methoden, die Werte zurückgeben Quiz
- 5. Parameter an Methoden in CakePHP
- 6. DataContractSerializer nicht richtig deserialisieren, Werte für Methoden im Objekt fehlen
- 7. Gibt die Adresse der Variablen ihre Position im RAM an?
- 8. P/Invoke ändert die Werte der übergebenen Argumente
- 9. p: selectOneMenu dropdown nicht an die Komponente in einem Dialogfeld
- 10. Sind alle Parameter, die an die abgebildete Methode übergeben werden, für die Ansicht der Webanwendung verfügbar?
- 11. Gibt es eine System.Reflection.Binder (.NET), die an generische Methoden bindet?
- 12. Gibt die Anzahl der Dateien im Verzeichnis und Unterverzeichnis an
- 13. Optischer Lecksucher (VLD) zeigt leeren Aufrufstack an
- 14. C# Type Inference nicht mit Methoden, die Standard-Parameter enthalten
- 15. schrittweise Regression p-Werte unter Verwendung von Variablen, die mit nicht signifikantem p-Wert
- 16. Erlang Aufrufstack
- 17. Mehrere Parameter an Methoden in F #
- 18. Die Anzahl der Parameter im Gaußschen Mischmodell
- 19. hinzufügen URL-Parameter an die DuckDuckGo searchplugin für Firefox
- 20. Die Übergabe der Windows-Benutzer-ID als Parameter an SQLDataSource gibt die Datenbindungsausnahme
- 21. Gibt es "gute" PRNG, die Werte ohne versteckten Zustand erzeugen?
- 22. Wie finde ich die Anzahl der Bytes der Parameter, die an die Funktion übergeben werden?
- 23. xtable für bedingte Zellenformatierung signifikante p-Werte der Tabelle
- 24. Parameter über die Befehlszeile an NUnit übergeben
- 25. Gibt es eine Datentypisierung für die Parameter in HTTP POST?
- 26. Passing Optional.absent() Werte an Methoden prägnant
- 27. Unpräzise p-Werte in Stargazer
- 28. Wie erhält man die Werte der Ansicht im Controller?
- 29. Warum schlägt der Host die Web-App nicht im Andock-Container an, obwohl er mit der Option -P ausgestattet ist?
- 30. Lua-Skript für Redis, die die Werte der Schlüssel summiert
Ich denke, ich verstehe, bis zu dem Punkt, wo Sie die Frage stellen, "Irgendeine Idee, warum wir anstelle der tatsächlichen Werte für die Parameter und lokale Variablen bekommen?" Kannst du umformulieren? –
@dtryon, ich habe die Frage jetzt aktualisiert. Danke, dass du es aufgezeigt hast. – arul