Results 1 to 8 of 8

Thread: Unbehandelte Ausnahme: Zugriffsverletzung beim Lesen

  1. #1
    Baccalaureus
    Join Date
    Oct 2010
    Posts
    862
    Thanks
    92
    Thanked 104 Times in 77 Posts

    Unbehandelte Ausnahme: Zugriffsverletzung beim Lesen

    Code:
    Unbehandelte Ausnahme bei 0x01367409 in Game_Debug.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefef6.
    Eine Ausnahme (erste Chance) bei 0x01367409 in Game_Debug.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefef6.
    Unbehandelte Ausnahme bei 0x01367409 in Game_Debug.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefef6.
    Das Programm lässt sich aber starten und verwenden. VS10 zeigt an, dass die Verletzung in std::vector auftritt.

    Code:
    size_type size() const
    {    // return length of sequence
    return (this->_Mylast - this->_Myfirst);
    }
    Aaaaaaaaaaaaaaaaaaaaaaaaaaaaahc++aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaah ich hasse dich!

  2. #2
    Master
    Join Date
    Nov 2009
    Location
    Vienna
    Posts
    139
    Thanks
    4
    Thanked 28 Times in 27 Posts
    Wenn du siehst, wo das Problem auftritt, nehme ich an dass Visual Studio dort kurz ein "Halt" macht. Du kannst im Debugging Menü unter Windows den CallStack ansehen.
    Der CallStack zeigt dir von wo die Funktion in diesem Moment aufgerufen wurde (und von wo die Funktion, welche in diesem Fall size() aufgerufen hat, aufgerufen wurde, usw.).

    Klick einfach auf die "äußere" Funktion und schau dir die Variable (über Debugging -> Windows -> Watch -> Watch1) an, die den std::vector halten sollte, für welchen du size() aufrufst.

    Ich würde darauf tippen, dass ein pointer entweder NULL/nullptr ist, oder vielleicht sogar nichtmal initialisiert wurde (sprich random daten im pointer stehen).

    Aber du kannst auf jeden Fall mal herausfinden wo dein Fehler auftritt (std::vector ist ja nicht die Quelle des Fehlers, sondern nur das "Symptom").
    Florian Schober
    [EVC Tutor, ECG-UE Tutor, CG-UE Tutor, RTR Tutor]

  3. #3
    Baccalaureus
    Join Date
    Oct 2010
    Posts
    862
    Thanks
    92
    Thanked 104 Times in 77 Posts
    Danke. Wir hatteb zuerst ein "delete game" und dann deletes die sich auf Variablen in game bezogen haben.
    Aaaaaaaaaaaaaaaaaaaaaaaaaaaaahc++aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaah ich hasse dich!

  4. #4
    Baccalaureus
    Join Date
    Oct 2010
    Posts
    862
    Thanks
    92
    Thanked 104 Times in 77 Posts
    oooookay. Jetzt haben wir eine Zugriffsverletzung, für die aber nichtmal Quellcode verfügbar ist. Ich habe zwar 2 neue Dateien erstellt aber diese werden noch nirgends verwendet.

    user32.dll!75ad7a24()
    [Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für user32.dll]
    user32.dll!75ad79df()
    HydraDMH.dll!1000d6c6()
    HydraDMH.dll!10009d6d()
    HydraDMH.dll!1000d6c6()
    HydraDMH.dll!10005318()
    user32.dll!75ad8336()
    user32.dll!75b26a58()
    user32.dll!75ac6e44()
    ntdll.dll!774f010a()
    user32.dll!75ac9a6a()
    > Game_Debug.exe!__glfwPlatformGetProcAddress() + 0x1d94 Bytes C
    Game_Debug.exe!__glfwPlatformOpenWindow() + 0x190 Bytes C
    90900004()
    Aaaaaaaaaaaaaaaaaaaaaaaaaaaaahc++aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaah ich hasse dich!

  5. #5
    Baccalaureus mOfl's Avatar
    Join Date
    Oct 2007
    Posts
    518
    Thanks
    12
    Thanked 98 Times in 84 Posts
    In solchen Fällen kann dir keiner helfen, der den Code nicht selbst auführt. Setze einen Breakpoint ganz am Anfang deines Programmes, starte im Debug-Modus und gehe Schritt für Schritt (F10 für komplette Calls, F11, um in aufgerufene Methoden zu springen, sofern verfügbar, und F5, um zum nächsten Breakpoint zu springen) durch, bis die Exception auftritt. Wenn du die genaue Zeile kennst, siehst du oft schon, wo der Fehler liegt - im Debug-Modus kannst du den Wert/Pointer von Parametern und Variablen auslesen, da passt dann oft irgendwas nicht. Wenn es sich bei der entsprechenden Zeile um einen GLFW-Call handelt, wäre das natürlich ungünstig.
    Former ECG & CGUE Tutor

  6. #6
    Baccalaureus
    Join Date
    Oct 2010
    Posts
    862
    Thanks
    92
    Thanked 104 Times in 77 Posts
    if (glfwOpenWindow( width,height,
    0,0,0,0,
    24, 8,
    GLFW_WINDOW) != GL_TRUE) {
    cerr << "Failed to initialize OpenGL window." << endl;
    glfwTerminate();
    return 1;
    }

    glfwSetWindowTitle("Galaxy Conquest V0.1");
    Der Fehler tritt bei glfwOpenWindow() auf. Aber mir ist absolut nicht klar, was ich da falsch gemacht haben könnte.
    Edit2: Mein Kollege hat das Problem aber scheinbar nicht!

    Jetzt stellt sich halt die Frage ob ichs einfach ignorieren und "weiterarbeiten" soll? Ist ja doof wenn man schon beim Fensteröffnen gleich mal den ersten Fehler bekommt.

    Edit3: Wenn ich den HydraGrid (ATI DesktopManager) beende gibts im Programm keinen Fehler mehr. Ich wüsste jetzt nicht wie ich das ausbessern soll, also werde ich es wohl einfach ignorieren.
    Last edited by NoxMortem; 09-04-2012 at 19:05.
    Aaaaaaaaaaaaaaaaaaaaaaaaaaaaahc++aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaah ich hasse dich!

  7. #7
    Baccalaureus mOfl's Avatar
    Join Date
    Oct 2007
    Posts
    518
    Thanks
    12
    Thanked 98 Times in 84 Posts
    Rufst du
    Code:
    glfwInit();
    auf, bevor du GLFW verwendest? Die Argumente von glfwOpenWindow sehen sonst recht normal aus, du könntest statt 0, 0, 0, 0 auch 8, 8, 8, 0 oder 8, 8, 8, 8 schreiben (0 bei den Farben heißt Default-Größe, 0 beim Alpha-Kanal heißt kein Alpha-Kanal), aber korrekt ist es auch so schon. Setzt du vorher noch irgendwelche Window Hints? Ich weiß jetzt nicht, was passiert, wenn man Hints setzt, die von der Hardware nicht unterstützt werden, z.B. OpenGL 3.2 Core Profile Context.
    Former ECG & CGUE Tutor

  8. #8
    Baccalaureus
    Join Date
    Mar 2007
    Posts
    518
    Thanks
    13
    Thanked 62 Times in 59 Posts
    was beim debuggen auch hilfreich sein kann, sind die verwendeten magic numbers vom visual studio debug mode: http://stackoverflow.com/questions/1...epresentations

    Damit kann man normalerweise das Problem etwas eingrenzen.
    Simon Wallner
    CGUE, EVC Tutor, former RTR, ECG, CG1, CG2, TIL Tutor

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •