64-bit Version Fehler beim Debuggen Try Catch

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von helge007.

    64-bit Version Fehler beim Debuggen Try Catch

    Ich habe bislang auf einen Windows 7 Prof 32 Bit Version mit VS 2010 Ultimate programmiert.
    Beim Versuch, ein darüber erstelltes Projekt auf einem Windows 7 Prof 64 Bit Rechner zu debuggen (dort ebenfalls VS 2010 Ultimate aber 64 bit), waren Einzelschritte nicht darstellbar, obwohl das Programm eigentlich vollständig erstellt und fehlerfrei lief.

    Regelmäßig kam die Info: Quelle nicht verfügbar ...

    Bei der Erstellung eines neuen Projektes (also unter 64 bit Version) bin ich bereits bei der Try Catch Anweisung, bei einem Fehler, der eigentlich abgefangen werden sollte, ebenfalls mit obiger Fehlermeldung rausgeflogen.

    Also hier mal mein Beispiel:


    Class MainWindow
    Public lastUser$
    Sub New()
    ' Dieser Aufruf ist für den Designer erforderlich.
    InitializeComponent()
    Try
    lastUser = GetSetting(Me.Name, "SettingGlobal", "lastUser")
    Catch ex As Exception
    lastUser = "new"
    End Try
    ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    End Sub
    '...
    End Class

    Es soll nur veranschulichen, dass, wenn Programm auf einem neuen Rechner erstmals gestartet wird, logisch noch kein akt. User in den Settings eingetragen sein kann, mithin ein Fehler auftritt, der über "catch ... " abgefangen werden soll.

    So nun das spaßige:
    Bereits bei Aufruf:
    lastUser = GetSetting(Me.Name, "SettingGlobal", "lastUser")

    ist schluss mit lustig.
    Es folgt die Fehlermeldung:
    "Es ist keine Quelle verfügbar.
    Für die aktuelle Position ist keine Quellcode verfügbar.
    Quelle für "C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\Input\AutoCompleteBox\System\Windows\Controls\AutoCompleteBox.cs" wird gesucht. Checksum: MD5 {ce 7 13 c 64 4d ed 75 bb d5 0 89 2c 35 2a a1}
    Die Datei "C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\Input\AutoCompleteBox\System\Windows\Controls\AutoCompleteBox.cs" ist nicht vorhanden.
    "C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\Input\AutoCompleteBox\System\Windows\Controls\AutoCompleteBox.cs" wird in Skriptdokumenten gesucht...
    "C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\Input\AutoCompleteBox\System\Windows\Controls\AutoCompleteBox.cs" wird in Projekten gesucht.
    Die Datei wurde nicht in einem Projekt gefunden.
    In Verzeichnis "C:\Programme\Microsoft Visual Studio 9.0\VC\crt\src\" wird gesucht...
    In Verzeichnis "C:\Programme\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc\" wird gesucht...
    In Verzeichnis "C:\Programme\Microsoft Visual Studio 9.0\VC\atlmfc\src\atl\" wird gesucht...
    In Verzeichnis "C:\Programme\Microsoft Visual Studio 9.0\VC\atlmfc\include\" wird gesucht...
    In Verzeichnis "C:\" wird gesucht...
    In Verzeichnis "D:\" wird gesucht...
    In den Einstellungen zum Debuggen von Quelldateien für die aktive Lösung ist angegeben, dass der Benutzer nicht zum Suchen der Datei aufgefordert wird: C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\Input\AutoCompleteBox\System\Windows\Controls\AutoCompleteBox.cs.
    Die Quelldatei "C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\Input\AutoCompleteBox\System\Windows\Controls\AutoCompleteBox.cs" wurde nicht gefunden."



    Wenn jemand irgend eine Ahnung hat. Ich bin ein guter Zuhöhrer....

    Achso, wenn ich bei "Catch ..." einen Haltepunkt setze und das Programm weiterlaufen lasse (F5 Taste), dann spingt das Programm sofort zu diesem Punkt.

    Vielen Dank schon fürs lesen.
    Möglicherweise wird irgendwo eine Assertion ausgelöst.
    Klicke die Meldung weg und drücke F10 (einen Prozedurschritt ausführen). Wenn Du Glück hast, steht er dann genau an der besagten Stelle.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für Eure Infos.

    Zu Mono:
    Ich habe wohl den Inhalt des falschen Fensters "Es ist keine Quelle verfügbar" kopiert (wohl aus meinem Programm, in dem ich auf den Fehler gestoßen bin)

    Im obigen Simpel Projekt(also wirklich nur: Neues Projekt angelegt und diese paar Zeilen eingehämmert) erfolgt die Fehlermeldung:

    Es ist keine Quelle verfügbar


    Quelle für "f:\dd\vb\runtime\msvbalib\Interaction.vb" wird gesucht. (No checksum.)
    Die Datei "f:\dd\vb\runtime\msvbalib\Interaction.vb" ist nicht vorhanden.
    "f:\dd\vb\runtime\msvbalib\Interaction.vb" wird in Skriptdokumenten gesucht...
    "f:\dd\vb\runtime\msvbalib\Interaction.vb" wird in Projekten gesucht.
    Die Datei wurde nicht in einem Projekt gefunden.
    In Verzeichnis "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\" wird gesucht...
    In Verzeichnis "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\" wird gesucht...
    In Verzeichnis "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\atl\" wird gesucht...
    In Verzeichnis "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\" wird gesucht...
    In den Einstellungen zum Debuggen von Quelldateien für die aktive Lösung ist angegeben, dass der Benutzer nicht zum Suchen der Datei aufgefordert wird: f:\dd\vb\runtime\msvbalib\Interaction.vb.
    Die Quelldatei "f:\dd\vb\runtime\msvbalib\Interaction.vb" wurde nicht gefunden.

    "
    Der Fehler tritt also bereits bei einfachen und NEU erstellten Projekten auf.
    Der Verweis auf WPF Toolkit hat nach meinem Dafürhalten keinen Einfluss, da mein Projekt ja ordnungsgemäß in der 32 bit Umgebung funktioniert und sich auch vollständig unter 64 bit kompilieren lässt, ja auch ordnungsgemäß ausgeführt wird.

    Also beim Debuggen die "Catch" Anweisung übersprungen, also der dort abgelegte Fehlercode (in meinem Beispiel 'lastuser= "new" ') nicht abgearbeitet wird und daher von mir zur Laufzeit nicht auf Fehler überprüft werden kann.

    Zu RodFromGermany:
    Wie und was ist ein Assertion?
    Bei Ausführung über F10 wird wie oben dargestellt, der Catch-Block übersprungen. Selbst wenn ich innerhalb des Catch-Blocks einen Haltepunkt setze, erfolgt bereits bei meiner Beispielszeile:
    lastuser= "new"
    eine Unterbrechnung und es öffnet sich das Fenster "Quellcode suchen: ProjectData.vb" und fordert mich auf, eine Datei auf dem Rechner zu suchen und VB zu übergeben!?

    Dies, obwohl diese Programmzeile nun wirklich keine Fehler auslösen dürft??

    Das Paradoxe ist ja, dass ich den Windows7 64 Bit Rechner zwei mal mit VB2010(64bit) aufgesetzt habe. Der Fehler aber immer noch besteht. Dies wohlgemerkt: auf der 32bit
    Rechner tritt der Fehler nicht auf...

    Mein Problem ist also noch nicht gelöst,

    Für weitere Hilfen bin ich sehr dankbar.

    Helge
    An Picoflop:
    Danke für Deine Antwort.

    Ich habe mir Deinen Link mal angesehen und dabei meine rudimentären Englischkenntnisse wiedermal aufgefrischt.
    Am interessantesten fand ich den Hotfix, der mir aber auch nicht weitergeholgen hat.
    Habe aber schon SP1 sowohl für Windows7 als auch für VB2010 installiert, so dass die damaligen Fehler, die mit dem Hotfix beseitigt werden sollten, wohl schon behoben wurden.

    Habe aber dennoch das Hotfix installiert, leider ohne Ergebnis.

    Mein Fehler ist also immer noch vorhanden.
    Setze also einen Haltepunkt F9 auf eine Zeile, die noch funktioniert.
    Dann stepst Du mit F10 durch Deinen Code und passt auf, was er macht. Wenn er rausfliegt, hast Du Deine Fehlerzeile gfefunden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe das Problem offensichtlich wie von Geisterhand selbst gelöst, jedenfalls ist es nicht mehr vorhanden.
    Was habe ich gemacht?:
    1. Hotfix installiert und Regestry Einträge vorgenommen (support.microsoft.com/kb/976038)
    2. unter Windows/Ausführen "devenv.exe /ResetSettings" ausgeführt (setzt VS Settings zurück)
    3. mal zum Test einen Computerneustart
    4. das Fenster "Es ist keine Quelle verfügbar" vom Editor Leiste entfernt (Maus gedrückt gehalten und von Leiste weggezogen) und dann dieses Fenster ausgeblendet.

    Ich glaube, dass der eigentliche Fehler in Nr. 4 steckte, also dadurch ausgelöst worden ist (!?), dass dieses Fenster fest in der Editor Leiste eingebunden war und dadurch beim debuggen den Focus erhielt.



    Vielen Dank

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „helge007“ ()