Laden...

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

Erstellt von mosspower vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.082 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 10 Jahren
Aktuelle Ausführungszeile nach Anhalten bei Breakpoint (im catch) rückwärts bewegen

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.

2.298 Beiträge seit 2010
vor 10 Jahren

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 |

16.807 Beiträge seit 2008
vor 10 Jahren

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.

4.931 Beiträge seit 2008
vor 10 Jahren

Hallo mosspower,

du meinst wohl, du möchtest die aktuelle Ausführungszeile ändern (current line), d.h. den gelben Pfeil?

F
10.010 Beiträge seit 2004
vor 10 Jahren

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.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 10 Jahren

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 😁

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 🤔

2.298 Beiträge seit 2010
vor 10 Jahren

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 |

Gelöschter Account
vor 10 Jahren

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)

P
660 Beiträge seit 2008
vor 10 Jahren

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*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden! *"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht." *"Ignorance simplifies ANY problem." *"Stoppt die Piraterie der Musikindustrie"

709 Beiträge seit 2008
vor 10 Jahren

Guten Morgen,
alternativ könnte man durch die Aufrufliste navigieren und dort schauen, unter welchen Umständen der Fehler aufgetreten ist.

F
10.010 Beiträge seit 2004
vor 10 Jahren

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?

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 10 Jahren

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

P
660 Beiträge seit 2008
vor 10 Jahren

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.

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*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden! *"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht." *"Ignorance simplifies ANY problem." *"Stoppt die Piraterie der Musikindustrie"

4.931 Beiträge seit 2008
vor 10 Jahren

Hallo ProGamer,

trotzdem ist "Set Next Statement" unabhängig von "Edit & Continue" benutzbar.
Daher ist deine Aussage

"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"):

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 😉

P
660 Beiträge seit 2008
vor 10 Jahren

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 😉

MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden! *"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht." *"Ignorance simplifies ANY problem." *"Stoppt die Piraterie der Musikindustrie"

F
10.010 Beiträge seit 2004
vor 10 Jahren

@mosspower:
Bei mir geht es auch nur, wenn ich im catch eine Zeile ausführen kann, die nicht gleich throw macht.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 10 Jahren

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.