none
Debugging mit Visual Studio 2015 RRS feed

  • Frage

  • Hallo zusammen,

    ich hatte bereits einen ähnlichen Thread bei dem es allerdings zu keiner Antwort kam.

    Unter Visual Studio 2013 hatte ich keine Probleme mit dem Debugging. Egal ob WPF, Windows Phone oder Windows Store Anwendung. Unter Visual Studio 2015 scheint aber das Debugging nicht mehr so ganz zu funktionieren. Da ich jedoch nicht so viel Ahnung von den VS-Settings habe, kann ich nicht sagen ob irgendwas nicht stimmt oder ob das ganze eine Einstellungssache ist.

    In einer aktuellen WPF-Anwendung setze ich einen normalen Break-Point. Unter VS2013 ging die Anwendung ganz normal bis dahin durch. Dort konnte ich dann Variablen überwachen und deren Werte anzeigen lassen. Unter VS2015 geh ich den Debug-Mode und der nimmt an keinem BreakPoint eine Pause. Er läuft einfach normal durch als würde ich gar nicht debuggen oder eine BreakPoints haben...

    Kann einer helfen?

    Vielen Dank im vorraus.

    Donnerstag, 17. September 2015 08:19

Antworten

  • Hi,

    dass es bei VS 2013 trotz Release Einstellung geklappt hat, war dann wohl eher ein Fehler in VS (oder ein - nun abgeschafftes - Feature :)

    Ich würde die Projektmappe mal komplett bereinigen und dann neu erstellen (geht bspw. über Menü "Erstellen" -> ...)

    Die von dir genannten Probleme kann ich so nicht nachvollziehen. Entweder ich kann debuggen oder eben nicht. Und wenn es geht, werden alle Breakpoints erkannt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 17. September 2015 09:20
    Moderator
  • Hi,
    Debug-Version bedeutet, dass im Maschinencode vor jeder Compileranweisung eine NOP eingebaut wird, die dann der Debugger bei Bedarf (Haltepunkt oder schrittweise Ausführung) überschreibt mit einer Sprunganweisung in den Debugger. In der Release-Version fehlt diese NOP-Anweisung und der Debugger kann dort keinen Haltepunkt setzen. Für bestimmte Abläufe kann aber auch in der Release-Version ein Haltpunkt genutzt werden. Das ist der Fall, wenn die CLR aktiv ist, z.B. bei Methodenaufrufen, wo die CLR die Typsicherheit prüft.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Donnerstag, 17. September 2015 09:23

Alle Antworten

  • Hi,

    schau mal bitte, ob Du evtl. "Release" anstelle von "Debug" als Projektmappenkonfiguration ausgewählt hast. (In der Regel ist in der oberen Menü- bzw. Symbolleiste ein kleines Listenfeld für die Projektmappenkonfiguration, dort sollte "Debug" ausgewählt sein)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Donnerstag, 17. September 2015 08:41
    Moderator
  • Das habe ich in der Tat so eingestellt (Also Release). Bei VS2013 war das jedoch kein Problem.

    Mir ist eben aufgefallen, dass doch bei bestimmten Break Points gehalten wird. z.B. in einer Methode, der erste BreakPoint wird erkannt, der nächste wird einfach übersprungen, der danach wieder wird erkannt.

    Donnerstag, 17. September 2015 09:02
  • Hi,

    dass es bei VS 2013 trotz Release Einstellung geklappt hat, war dann wohl eher ein Fehler in VS (oder ein - nun abgeschafftes - Feature :)

    Ich würde die Projektmappe mal komplett bereinigen und dann neu erstellen (geht bspw. über Menü "Erstellen" -> ...)

    Die von dir genannten Probleme kann ich so nicht nachvollziehen. Entweder ich kann debuggen oder eben nicht. Und wenn es geht, werden alle Breakpoints erkannt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 17. September 2015 09:20
    Moderator
  • Hi,
    Debug-Version bedeutet, dass im Maschinencode vor jeder Compileranweisung eine NOP eingebaut wird, die dann der Debugger bei Bedarf (Haltepunkt oder schrittweise Ausführung) überschreibt mit einer Sprunganweisung in den Debugger. In der Release-Version fehlt diese NOP-Anweisung und der Debugger kann dort keinen Haltepunkt setzen. Für bestimmte Abläufe kann aber auch in der Release-Version ein Haltpunkt genutzt werden. Das ist der Fall, wenn die CLR aktiv ist, z.B. bei Methodenaufrufen, wo die CLR die Typsicherheit prüft.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Donnerstag, 17. September 2015 09:23
  • Danke für eure Antworten. Ich werde das gleich mal austesten und dann nochmal antworten ;)
    Donnerstag, 17. September 2015 09:49