2009-07-23 5 views

Antwort

10

Wählen Sie im Menü Debuggen die Option "An Prozess anhängen", um einen Debugger an Ihre extern ausgeführte Anwendung anzuhängen.

+0

Ich habe gerade das Debug-Prozess-Dialogfeld geöffnet, nichts ausgewählt, habe es geschlossen und ging zum Neuaufbau. Kann nicht an Maschine TT2 anhängen Wollen Sie trotzdem fortfahren? (Weiter nichts passiert) –

+0

Stellen Sie sicher, dass Sie auch den richtigen Codetyp (Verwaltet, Nativ, Script, usw.) für die Anwendung auswählen, an die Sie anhängen (oder wählen Sie automatisch). – adrianbanks

+0

OK, hab es jetzt. Allerdings muss ich es jedes Mal neu anhängen, wenn ich laufe? Ich musste den Code verzögern, damit ich ihn während des Laufs anhängen konnte (so dass er in der Box "Verfügbare Prozesse" angezeigt wird) Gibt es einen besseren Weg, all dies zu tun? –

2

Visual Studio ermöglicht standardmäßig Just-in-Time-Debugging. Wenn Sie es nicht ausgeschaltet haben, können Sie DebugBreak() aufrufen, und Sie erhalten ein Popup, mit dem Sie einen Debugger anhängen können. Wenn Sie keinen Debugger anhängen, wird das Programm beendet. Sie können also versuchen, den DebugBreak-Aufruf in eine MessageBox oder einen anderen bedingten Code auf der Basis einer Umgebungsvariablen oder eines Konfigurationselements zu verpacken.

+0

Ich benutze tatsächlich C. Ist DebugBreak() immer noch die richtige Funktion? Programm gibt mir "Es gab einen Fehler mit ....", wenn ich DebugBreak() verwenden –

+0

@Tommy: Vielleicht haben Sie keine Just-In-Time-Debugger eingerichtet, in diesem Fall, wenn DebugBreak System sucht nach JIT Debugger ausführt, kann es nicht finden und das Programm wird beendet. – Paul

+0

Sieht aus wie es für alle 3 Typen aktiviert ist ... –

1

Da es C ist, ist der Aufruf von DebugBreak() korrekt - dies wird Ihnen einen unangenehmen Fehlerdialog (je nach Betriebssystem ein anderes Aussehen) geben, der eine "Debug" -Option haben sollte. Wenn Sie darauf klicken, sollten Sie einen Dialog bekommen, um einen der installierten Debugger auszuwählen (VS.NET gehört dazu). Wenn Sie sie auswählen, sollten Sie die DebugBreak() - Zeile aufrufen. Dies kann jedoch fehlschlagen, wenn der Debugger die PDB-Dateien für Ihre App nicht finden kann. In diesem Fall erhalten Sie nur die Disassembly-Ansicht und keine Quellcodeansicht.

Sie können auch WinDBG und die 'Open Executable Option' verwenden - wieder benötigt es die PDB-Dateien, um etwas Nützliches zu liefern.

Verwandte Themen