Ich habe in letzter Zeit bemerkt, dass der Debugger von Visual Studio 2010 immer wieder in diese Methode springt, die mit dem Attribut [DebuggerStepThrough]
gekennzeichnet ist.
Der Callstack sieht ungefähr so aus:
[DebuggerStepThrough]
. Ich habe gerade den Linq-Aufruf mit einer foreach-Schleife wie folgt ersetzt, ohne Erfolg:
Das ist ein bisschen ärgerlich, da diese Methode ziemlich häufig aufgerufen wird, und ich verstehe nicht, warum das Attribut ignoriert wird.
Probieren Sie diese einfache Konsolenanwendung aus, setzen Sie Breakpoints auf die angegebenen Zeilen, führen Sie den Debugger aus und drücken Sie im ersten Breakpoint die Taste (F11). Es sollte den zweiten Breakpoint verpassen. Otherwatsie, wenn eine visuelle Studioeinstellung / Erweiterung Dinge vermasseln könnte.
%Vor%BEARBEITEN
Eigentlich glaube ich, dass es etwas mit der Yield-Aussage zu tun hat. Wenn ich versuche, eine Liste zu erstellen (GetHierarchy2), habe ich kein Problem mit dem DebuggerStepThrough-Attribut
Debuggen Sie einen Binärmodus für den Veröffentlichungsmodus? Es könnte für den Compiler zur Kompilierungszeit optimiert und möglicherweise nur deterministisch sein, so dass Sie nicht in der Lage sein werden, einzugreifen. Sehen Sie sich die erzeugte IL an und prüfen Sie, ob dies der Fall ist.
Tags und Links visual-studio-2010 debugging