none
Kann Programm nicht mehr Debuggen RRS feed

  • Frage

  • Hallo,

    Ich habe keine Ahnung warum aber ich bekomme jetzt immer beim Debuggen meines Programmes diesen Fehler der vorher nie kam :

    Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt..

    '------------------------------------------------------------------------------
    ' <auto-generated>
    '     Dieser Code wurde von einem Tool generiert.
    '     Laufzeitversion:4.0.30319.34003
    '
    '     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
    '     der Code erneut generiert wird.
    ' </auto-generated>
    '------------------------------------------------------------------------------

    Option Strict On
    Option Explicit On


    Namespace My
        
        'HINWEIS: Diese Datei wird automatisch generiert. Ändern Sie sie nicht direkt. Zum Ändern
        ' oder bei in dieser Datei auftretenden Buildfehlern wechseln Sie zum Projekt-Designer.
        ' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im
        ' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor.
        '
        Partial Friend Class MyApplication
            
            <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
            Public Sub New()
                MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.ApplicationDefined)
                Me.IsSingleInstance = false
                Me.EnableVisualStyles = true
                Me.SaveMySettingsOnExit = true
                Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterAllFormsClose
            End Sub
            
            <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
            Protected Overrides Sub OnCreateMainForm()
                Me.MainForm = Global.CMDStarter.Form1 ' Der makierte Fehler
            End Sub
        End Class
    End Namespace

    Was kann ich da machen ich möchte jetzt nicht alles neu schreiben an dem Programm sitze ich schon seit Monaten !!!

    Donnerstag, 19. Dezember 2013 13:37

Antworten

Alle Antworten

  • Hallo,
    du kannst das Projekt noch Debuggen, schließlich bekommst du auch die Exception. Dort wo der Fehler auftritt solltest du mal einen BreakPoint setzen. Durch zeigen auf die einzelnen Bezeichner erfährst du deren Wert und findest somit heraus was nicht zugewiesen wurde.

    In welche Datei findest du denn den Code? (Ich meine den Dateinamen)
    Wenn es sich um die Application.Designer.vb handelt, die scheint richtig zu sein.

    Hast du in letzter Zeit irgend welche Einstellungen im Projekt oder am Programm-Start geändert? Also irgend etwas was noch vor dem Anzeigen der Form ausgeführt wird?

    Nun zur Exception:

    1. Von welchem Typ ist die Exception?
    2. Wie lautet die Message?
    3. Gibt es zusätzliche Informationen (Stacktrace, Argumentname, ...)?
    4. Gibt es eine Innere Exception? Wenn ja, dann wieder ab 1.

    Das kannst du als Check-Liste nutzen ob du uns auch alles gesagt hast ;)


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Donnerstag, 19. Dezember 2013 14:00
    Moderator
  • Könnt ihr damit was anfangen ?

    Donnerstag, 19. Dezember 2013 14:27
  • Schon etwas mehr. Klicke mal unter Aktionen auf den Link Details anzeigen...

    Dort solltest du dann eine Liste mit weiteren Daten bekommen.

    Was aber auch noch eine wichtige Rolle spielt , ist ob du irgend etwas geändert hast.

    Im Web fand ich nur heraus, das die mit dem Problem den Code immer in ein neues Projekt kopiert haben. Das macht zwar auch etwas Arbeit, ist aber noch ziehmlich harmlos.

    Die meisten Dateien kannst du einfach ins neue Projekt kopieren. Kopiere also die Form1.vb, Form1.Designer.vb, Form1.resx, Class.vb, ... in das neue Projekt. Anschließend wählst du, im Kontextmenü der Projektmappe im Projektmappenexplorer, Hinzufügen > Vorhandene Dateien. Verweise und Projekteinstellungen musst du aber neu setzen.

    Als Fehlerquelle kam einige male eine Fehlende DLL, wobei ich das nicht nachvollziehen kann.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Donnerstag, 19. Dezember 2013 14:43
    Moderator
  • Also geändert habe ich da nichts ich habe nur eine Stopuhr hinzugefügt und dann wollte ich das Testen und dann kam dieser Fehler

    Donnerstag, 19. Dezember 2013 14:56
  • Auf dem ersten Bild ist unter InnerException > StackTrace der Konstruktor (ctor) der Form1 aufgeführt.

    Laut dem Screenshot wird der Fehler in Zeile 39 geworfen. Entweder du weißt wo dort der Fehler liegt oder du fügst im Konstruktor mal einen Try-Catch-Block ein. Am Anfang setzt du einen BreakPoint. Dein Konstruktor muss dann also so aussehen:

    Sub New() Try 'Hier BreakPoint setzen InitializeComponent()

    'Hier steht dein restlicher Code Catch ex As Exception Debugger.Break() 'Debugger anhalten End Try End Sub

    Wenn du nun mit F11 Zeile für Zeile durch gehst, wirst du sehen bei welcher Zeile der Fehler auftritt. Dort ist dann ein Element Nothing. (Auf die Variablen und Eigenschaften zeigen um das heraus zu finden). Dort fehlt dann irgend etwas bzw. wurde nicht zugewiesen etc.

    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Donnerstag, 19. Dezember 2013 15:42
    Moderator
  • Hallo Tobpy,
    wenn der Fehler eliminiert ist entferne den Breakpoint wieder.
    Hintergrund: Visual Studio kommt wenn Du die Form im Designer öffnest, mit Breakpoints oder einem Debugger.Break() nicht immer zurecht.
    Grüße Alexander
    Freitag, 20. Dezember 2013 07:18
  • Wie finde ich denn die Zeile 39 ?
    Freitag, 20. Dezember 2013 09:48
  • Ich habe meinen Fehler gefunden :

    Dim TextBox1Breite As String = TextBox1.Width

    Freitag, 20. Dezember 2013 10:54
  • Hallo,

    Dim TextBox1Breite As String = TextBox1.Width

    In Mathe rechnen wir jetzt mit Texten...immer noch kein Option Strict On.

    Die Zeilenzahlen stehen im Visual Studio in der Statusleiste (Z 39) oder ja nach Einstellung vor den Zeilen. Abzählen geht natürlich auch.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Freitag, 20. Dezember 2013 12:39
    Moderator