Was kann dazu führen, dass Visual Studio 2008 beim Debugging hängen bleibt?

8

Ich habe ein vb.net-Projekt, das manchmal, wenn es in der IDE läuft, plötzlich hängt. Normalerweise wäre das kein Problem. Klicken Sie einfach auf "Pause", sehen Sie sich die aktuell laufenden Threads an und finden Sie den Deadlock (oder was auch immer).

Aber jetzt stoße ich in eine Situation, in der nicht nur das Programm hängt, sondern auch, wenn ich versuche es anzuhalten, das Visual Studio selbst zum Erliegen bringt. Um die Kontrolle zurückzugewinnen, muss ich den Prozess des Debuggens beenden, bei dem Visual Studio wieder zum Leben erwacht und sagt, dass es die Ausführung nicht pausieren konnte. Das ist frustrierend, weil das Töten des Prozesses bedeutet, dass der Programmstatus verloren ist (natürlich), also weiß ich nicht, wo der Hang ist .

Gibt es also häufige Ursachen für dieses Verhalten? Nach was soll ich suchen?

    
Craig Gidney 23.05.2009, 19:16
quelle

5 Antworten

6

Wenn Ihr Programm globale Hooks installiert (die mit der App kommunizieren), könnte dies der Fall sein. Ein Hook versucht, mit Ihrer App zu kommunizieren (die vom Debugger angehalten wird) und wird gesperrt. Und Debugger kann seine Fenstermeldungen nicht empfangen: Klassischer Deadlock zwischen süchtigem Debugger (mit Hook-DLL) und einer Hooking-App.

    
Andrey 28.05.2009 23:12
quelle
3

Das Finden einer bestimmten Korrektur für ein Visual Studio-Problem kann schwierig sein: Ссылка

Außerdem werden nicht alle Hotfixes von Microsoft direkt an die Öffentlichkeit freigegeben. Einige werden nur an Kunden ausgegeben, deren Systeme ein spezifisches Problem aufweisen. Sie müssen sich also an Microsoft wenden, um den Fehler zu beheben. Sie tun dies, um den potenziellen Nachteil der Veröffentlichung eines Hotfixes zu begrenzen, der möglicherweise etwas anderes kaputt macht. Wenn alles andere fehlschlägt, rufen Sie sie an.

Hier sind einige andere Dinge, die ich gerne mache, wenn Visual Studio anfängt zu agieren:

  1. Löschen Sie alte Haltepunkte und beobachten Sie Variablen.
  2. Wenn Visual Studio nicht ausgeführt wird, löschen Sie die Intellisense-Datei (.ncb)
  3. Bereinigen Sie die Lösung, und führen Sie dann eine Neuerstellung des gesamten Codes durch.
onedozenbagels 24.05.2009 05:37
quelle
0

Überprüfen Sie Hotfixes und Service Packs. Ich habe einen Fehler im Zusammenhang mit .NET-Programmierung und Debugging festgestellt. (VS hängt für mich beim Debuggen von C ++ 32-Bit-Anwendungen auf 64-Bit-Betriebssystemen manchmal.)

    
Macke 23.05.2009 19:24
quelle
0

Ich hatte gerade ein sehr ähnliches Problem (VS kann die Ausführung nicht unterbrechen), mit Debug - & gt; Löschen aller Haltepunkte löste das Problem.

    
floele 06.08.2012 06:41
quelle
-1

Ich würde den Code des zu debuggenden Programms überprüfen. Ich denke, dass es im Code, den Sie zu debuggen versuchen, eine Endlosschleife oder eine Race-Bedingung geben kann. Dies war in der Vergangenheit der Fall, besonders bei einem Single-Core-Laptop, den ich früher hatte. Können Sie Informationen darüber geben, wo im Programm die Ausführung ausgeführt wird, wenn Sie versuchen zu pausieren?

    
Sukasa 23.05.2009 19:18
quelle