Der Wert von local oder argument kann nicht erhalten werden, da er in diesem Befehlszeiger nicht verfügbar ist, möglicherweise weil er weg optimiert wurde
Visual Studio 2010 tötet (es gibt kein anderes Wort) Daten in eine der Funktionen argument in unsafe-block.
Was könnte diesen Fehler verursachen? Die folgende Meldung zeigt, die durch den debugger.
Cannot obtain value of local or argument as it is not available at this instruction pointer, possibly because it has been optimized away.
InformationsquelleAutor der Frage curiousity | 2011-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehen Sie auf Eigenschaften, und unter Bauen, Stellen Sie sicher, dass Sie die "Optimize Code" deaktiviert ist.
Stellen Sie auch den "Debug-Info" dropdown "Voll" in den Erweiterten Optionen (Unter der Registerkarte "Erstellen").
InformationsquelleAutor der Antwort Karthik
Auch
In VS 2015 Community Edition
gehen
Debug->Optionen oder Extras->Optionen
und überprüfen
Debugging->allgemein->Unterdrücken der JIT-Optimierung auf Modul laden (nur Verwaltet)
InformationsquelleAutor der Antwort xyq.384.b
Wenn Sie kompilieren mit Optimierungen aktiviert, dann werden viele Variablen entfernt werden, zum Beispiel:
hier die lokale variable
value
würde, erhalten in der Regel entfernt, halten Sie den Wert auf dem stack, sondern ein bisschen wie als wenn du geschrieben hättest:Auch, wenn ein Rückgabewert nicht verwendetdann wird es gelöscht werden, über "pop" (anstatt gespeichert in einem lokalen über "stloc", und wieder, die lokale nicht mehr existieren wird).
Weil dies in solch einem Aufbau kann der debugger nicht den aktuellen Wert von
value
weil es existiert nicht - es gibt Sie nur für den kurzen Augenblick zwischenGetValue()
undDoSomething(...)
.Also, wenn Sie wollen, zu Debuggen... nicht mit einem release zu bauen! oder zumindest deaktivieren Optimierungen beim Debuggen.
InformationsquelleAutor der Antwort Marc Gravell
http://www.guntucomputerhacks.blogspot.com.au/2014/07/cannot-obtain-value-of-local-or.html
Dieser arbeitete für mich in visual studio 2013.
Alles, was Sie zu tun haben ist..
InformationsquelleAutor der Antwort Dulanjana Wickramatantri
Ich lief einfach in diesem, und ich war unter
Release
build-Konfiguration stattDebug
build-Konfiguration. Nachdem ich wieder eingeschaltet, umDebug
meine variable zeigte sich in der Uhr wieder.InformationsquelleAutor der Antwort JabberwockyDecompiler
Als ich war konfrontiert mit dem gleichen problem, ich hatte einfach zu reinigen meine Lösung vor dem Umbau. Dass passte es für mich.
InformationsquelleAutor der Antwort CJe
Über das problem mit "Optimize code" - Eigenschaft wird DEAKTIVIERT doch den code noch kompilieren als optimiert: das, Was schließlich half mir, nachdem alles versucht wurde, überprüfen Sie die "Enable unmanaged code debugging" das Kontrollkästchen auf der gleichen Seite Einstellungen (Projekt-Eigenschaften - Debug). Es muss nicht direkt beziehen sich auf die code-Optimierung, aber mit diesem aktiviert, VS nicht mehr optimiert " meine Bibliothek und ich kann Debuggen.
InformationsquelleAutor der Antwort Miloš
Ich habe vor dem gleichen Problem und die Lösung für mich ist, ändern
Solution Configuration
ausRelease
zuDebug
. Hoffe es hilftInformationsquelleAutor der Antwort Hoang Tran
Fand ich, dass ich hatte das gleiche problem, wenn ich mit einem Projekt-und debugging-durch das anbringen an ein IIS-Prozess. Ich war auch laufen im Debug-Modus mit Optimierungen ausgeschaltet. Während ich dachte, der code kompiliert in Ordnung, wenn ich losgemacht und versucht zu kompilieren, eine der Referenzen wurde nicht gefunden. Dies wurde durch einen anderen Entwickler hier, dass Modifikationen und veränderte die Lage der Referenz. Die Referenz nicht zeigen, bis mit dem alert-symbol, so dass ich dachte, alles war in Ordnung bis ich die Zusammenstellung. Sobald die Festsetzung der Referenz-und der läuft wieder es gearbeitet.
InformationsquelleAutor der Antwort Derreck Dean
In meinem Fall war ich auf einer web-api-Projekt, und obwohl das Projekt war richtig eingestellt, um alle debug -, ich war immer noch zu sehen, dieser Fehler jedes mal, wenn ich angebracht, um den IIS-Prozess habe ich versucht zu Debuggen. Dann erkannte ich, dass Sie das Veröffentlichungsprofil eingestellt war, verwenden Sie die Release-Konfiguration. Also einen weiteren Ort zu überprüfen, ist Ihrem Profil veröffentlichen, wenn Sie den "Veröffentlichen" - Funktion Ihres dotnet web-api-Projekt.
InformationsquelleAutor der Antwort user8683595
Als eine zusätzliche Antwort für diejenigen, bei denen dieses Problem beim Debuggen einer Azure-websites, web-app:
Beim bereitstellen von GitHub, zum Beispiel, der code kompiliert wird in der Azure-server optimiert standardmäßig.
Sag ich dem server zu kompilieren, in einer debug-Version einer Weise durch Einstellung
SCM_BUILD_ARGS
zu/p:Configuration=Debug
aber es gibt mehr Optionen. Sehen:
http://azure.microsoft.com/blog/2014/05/08/introduction-to-remote-debugging-on-azure-web-sites-part-3-multi-instance-environment-and-git/
InformationsquelleAutor der Antwort iberodev
Überprüfen, um zu sehen, wenn Sie eine debug-Version einer Attribut der Datei AssemblyInfo. Wenn es ist, entfernen Sie und neu erstellen Sie, die Lösung zu sehen, wenn die lokalen Variablen verfügbar sind.
Meine debugfähiger-Attribut festgelegt wurde: DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints die nach in diesem MSDN-Artikel sagt der JIT-compiler zu verwenden Optimierungen. Entfernt habe ich diese Zeile von meinem AssemblyInfo.cs-Datei und der lokalen Variablen verfügbar waren.
InformationsquelleAutor der Antwort Jawiggins
In Visual Studio 2012:
Gehen Sie auf die Projekt-Eigenschaften -> Debug -> Deaktivieren Sie "Enable Visual Studio hosting process"
InformationsquelleAutor der Antwort Milana