Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Aktuelle Ausführungszeile nach Anhalten bei Breakpoint (im catch) rückwärts bewegen
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

Aktuelle Ausführungszeile nach Anhalten bei Breakpoint (im catch) rückwärts bewegen

beantworten | zitieren | melden

Hallo,

ich kann bei meiner aktuellen Konfiguratiion den Breakpoint, wenn eine Exception geworfen wird, nicht mehr bewegen - wo kann man das einstellen?

Problem ist: Ich setze den Breakpoint in die catch-Anweisung und möchte dann, wenn er dort stehenbleibt, in die try-Anweisung navigieren, um so den Fehler zu finden - hab das jahrelang so gemacht, aber aktuell geht das nicht mehr bei meiner Konfiguration - arbeite mit VS2010.

Vielen Dank für Hilfe schon mal im voraus.
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

Echt, man konnte / kann rückwärts navigieren? Hab ich bisher nichts von gehört, wäre aber eine coole Sache.

Was hat sich denn an deiner Konfiguration geändert? Also wie war die vorherige, mit der es funktionierte?
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

Rückwärts Navigieren geht nur mit Ultimate ab 2010.
Nennt sich Historical Debugging im Teil des IntelliTrace.

Mit dem, was mosspower beschreibt, kann ich aber gar nichts anfangen.
Keine Ahnung, was er meint.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.587

beantworten | zitieren | melden

Hallo mosspower,

du meinst wohl, du möchtest die aktuelle Ausführungszeile ändern (current line), d.h. den gelben Pfeil?
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.999

beantworten | zitieren | melden

Naja, wenn man irgendwo per Breakpoint anhält und dann links auf die Spalte mit dem Programzeiger geht, kann man den wieder zurückschieben.

So kann man eine Routine z.b. auch ein 2. mal aufrufen.

Geht auch bei Exceptions, aber nur wenn man auch eine Exception abfängt, und im Catch Anweisungen stehen, und nicht direkt wieder ein throw kommt.
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Ich erklär es nochmal.

Ich setze irgendwo einen Breakpoint und der Code stopt an der Stelle. Jetzt war es vorher immer möglich, dass ich rechte mit der Maus über den Breakpoint gefahren bin (in dem sich jetzt ein gelber Pfeil befindet) und just in dem Moment, wo ich mit dem Mauszeiger über dem Breakpoint bin, ändert sich das Mausicon zu einem schwarzen Pfeil - wenn ich jetzt die linke Maustaste gedrückt habe, konnte ich den Breakpoint per drag in eine x-beliebige Zeile schieben - ich hab das immer verwendet um in eine Zeile möglichst vor dem Fehler zu navigieren und dann eben "ganz normal" mit Step Over weitergemacht von der "neuen Zeile"

Hm, ist es jetzt verständlicher? Ich hoffe es
Zitat von Th69
du meinst wohl, du möchtest die aktuelle Ausführungszeile ändern (current line), d.h. den gelben Pfeil?

Ja, genau das meinte ich - ich kann die Zeile mit dem gelben Pfeil "ganz normal, wie gewohnt" verschieben, wenn keine Exception geworfen wurde, aber bei Exceptions funktioniert das bei mir nicht mehr und genau da brauch ich es aber überwiegend - hm, da muss ich wohl mal was verstellt haben
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

Man lernt nie aus. ;) Danke dafür. - Im VS2010 Express funktioniert es zumindest.
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

Nur als Nachtrag, wenn dein Code optimiert(Compiler Magic) ist, damit ist speziell Linq gemeint, ist dieses tolle Feature automatisch tot. Je moderner dein Code ist desto weniger ist dieses Feature tatsächlich nutzbar(In Fact: Ich kannte dieses Feature lange Zeit auch nicht)
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

Morgen,

ich kenne dieses Feature aus VB6 und in VS geht das auch noch, aber ich meine, nur wenn du im
Debug Modus bist und für x86 CPU compilierst.
MfG
ProGamer
private Nachricht | Beiträge des Benutzers
pinki
myCSharp.de - Member

Avatar #avatar-4072.jpg


Dabei seit:
Beiträge: 709
Herkunft: OWL

beantworten | zitieren | melden

Guten Morgen,
alternativ könnte man durch die Aufrufliste navigieren und dort schauen, unter welchen Umständen der Fehler aufgetreten ist.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.999

beantworten | zitieren | melden

Hier sind ja mythen unterwegs, tsts.

@Sebastian.Lange, @ProGamer:
Was ihr beiden Meint ist Edit & Continue, das ist hier nicht gemeint.

@mosspower:
Du hast gelesen was ich schrieb?
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Also, bei mir geht das nicht mehr, wenn eine Exception geworfen wurde und ich einen Breakpoint ins catch setze. Bleibt stehen und ich kann nicht mehr verschieben, bzw. wenn ich die Maustaste nach dem Drag loslasse passiert nix .... ich hab das oft benutzt um so schnell den Fehler zu finden, dass ich dann aus dem catch an die Stelle geschoben hab, wo ich den Fehler vermutet habe (klar, man kann auch in Stacktrace schauen und, und und ... aber das dauert halt) ...

Aktuell kann ich nur noch "schieben", wenn keine Exception geflogen ist - das funktioniert weiterhin - hm, sehr komisch ... sind alles Any CPU-Projekte
private Nachricht | Beiträge des Benutzers
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

Dann stell dein Build mal um auf x86 und guck ob es immer noch so ist.

@FZelle
"Set Next Statement" ist das Stichwort hier, und das gehört zu Edit and Continue.
Zitat
When Edit and Continue is enabled, supported changes are applied automatically when you use a debugger execution command, such as Continue, Step, Set Next Statement [...]

Quelle: How to: Use Edit and Continue (C#)
MfG
ProGamer
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.587

beantworten | zitieren | melden

Hallo ProGamer,

trotzdem ist "Set Next Statement" unabhängig von "Edit & Continue" benutzbar.
Daher ist deine Aussage
Zitat von "ProGamer"
"Set Next Statement" ist das Stichwort hier, und das gehört zu Edit and Continue.
falsch.
Evtl. hast du einfach den englischen Text falsch verstanden, daher hier auf deutsch (Gewusst wie: Verwenden von "Bearbeiten und Fortfahren"):
Zitat von "MSDN"
Bearbeiten und Fortfahren wird automatisch aufgerufen, wenn Sie im Unterbrechungsmodus Änderungen vornehmen und anschließend einen Ausführungsbefehl des Debuggers wählen, wie beispielsweise Weiter, Schritt oder Nächste Anweisung festlegen, oder wenn Sie im Debuggerfenster eine Funktion auswerten.

Oder mathematisch:
A => B bedeutet nicht: A ist Untermenge von B ;-)
private Nachricht | Beiträge des Benutzers
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

[Offtopic]
ach F**K...

ich entschuldige mich -.-
ich hatte es wirklich so verstanden, dass Set Next Statement nur mit Edit and Continue ausgeführt werden kann.
Ich sollte lesen lernen ;-)
[/Offtopic]
MfG
ProGamer
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.999

beantworten | zitieren | melden

@mosspower:
Bei mir geht es auch nur, wenn ich im catch eine Zeile ausführen kann, die nicht gleich throw macht.
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 456
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Also, ich habs jetzt auf x86 gestellt und geht auch nicht ... hab VS2010 auf 64 Bit Windows 7 Ultimate .. ich muss da irgendwann mal verstellt haben, anders kann ich mir das nicht erklären. Ich bin mir 100 Prozent sicher, dass ich von catch in try-Block verschieben konnte, nachdem die Exception beim Breakpoint im catch-Block angehalten wurde.
private Nachricht | Beiträge des Benutzers