Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.01.2006, 20:46

Segmentation Fault (SDL Parachute Deployed)

Ich habe das Spiel aus dem Buch; Kapitel 12, abgeändert:
Richtung der Asteroiden, Bewegungsmöglichkeiten des Raumschiffes, Kollision Raumschiff mit Asteroid. Zum Abschluß wollte ich dem Spieler 3 "Leben" geben, wobei nach einer Kollision mit einem Asteroiden eins abgezogen werden soll. Der Compiler meldet keinen Fehler, aber wenn ich das Spiel starte erscheint obige Fehlermeldung.

Was ist falsch?

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

2

18.01.2006, 10:25

Hallo,

ich poliere mal meine Kristallkugel und sehe.....nichts =)

Naja, ohne Code zu sehen wird man hier schlecht weiterhelfen können. Geh den Code mal im Einzelschrittmodus durch und poste dann hier die Stelle, an der es crasht.

mfg,
Heiko

3

18.01.2006, 20:32

Hallo,

Einzelschrittmodus funktioniert irgendwie nicht, F10 (wie im Buch beschrieben) startet bei mir Aufzeichnungen für Makros (spinnt mein PC?)
Wenn ich Debug mit F5 starte kommt folgende Fehlermeldung:
"ntdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\kernel32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\Projekte\SLD_Game\Debug\SDL.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\winmm.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\user32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\gdi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\advapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\rpcrt4.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\msvcrt.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
Geladene Symbole für "C:\WINDOWS\system32\MSVCP60D.DLL"
Geladene Symbole für "C:\WINDOWS\system32\MSVCRTD.DLL"
"C:\WINDOWS\system32\nview.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\shlwapi.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\shell32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\psapi.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\ole32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\oleaut32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\comctl32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\version.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805\comctl32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\ntmarta.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\wldap32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\samlib.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\nvwrsde.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\msctf.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\Programme\Microsoft Hardware\Mouse\Msh_zwf.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\nvwimg.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\nvwddi.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\Programme\Netropa\Multimedia Keyboard\Nhkdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\dinput.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\ddraw.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\dciman32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\ddraw.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\dciman32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\dinput.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\hid.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\setupapi.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
Thread 0x414 wurde mit Code 0 (0x0) beendet.
Nicht abgefangene Ausnahme in SLD_Game.exe: 0xC0000005: Access Violation.
Thread 0x428 wurde mit Code -11 (0xFFFFFFF5) beendet.
Thread 0x4E8 wurde mit Code -11 (0xFFFFFFF5) beendet.
Das Programm "C:\PROJEKTE\SLD_Game\Debug\SLD_Game.exe" wurde mit Code -11 (0xFFFFFFF5) beendet.

Ich hoffe, das hilft Dir weiter - mir sagt das überhaupt nix :)

mfg

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

4

19.01.2006, 10:24

Dann schau mal im Menü unter "Debuggen". Irgendwo wirds schon nen Einzelschrittmodus geben. Die Fehlermeldung besagt, dass es eine Zugriffsverletzung gegeben hat. Und die kann eben überall aufgetaucht sein. Ohne Code und Anhaltspunkt wird Dir keiner helfen können.
Musst also das Problem erstmal eingrenzen und den entsprechenden Code posten.

mfg,
Heiko

5

20.01.2006, 17:05

Ich hab jetzt das Programm auf einem anderen PC mit F10 durch den Debugger gejagt - der zeigt aber überhaupt nix an. Am Ende versucht er, das Spiel zu starten, es erscheint dann auch ganz kurz der Bildschirm, aber dann bricht er wieder mit der gleichen Fehlermeldung ab.

Sieht so aus, als müßte ich alles rückgängig machen und nochmal von vorne anfangen, oder? ???

Trotzdem vielen Dank für die Antwort

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

20.01.2006, 17:19

Zitat von »"Quequeg"«

... Am Ende versucht er, das Spiel zu starten, es erscheint dann auch ganz kurz der Bildschirm...
An welchem Ende und wieso schaust du dir nicht die Schritte, die er während des Startens macht, an?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

7

22.01.2006, 16:48

Also, vorausgeschickt daß ich ein ziemlicher Anfänger in diesen Dingen bin, und hoffe, keinen Fehler zu machen:

Wenn ich diesen Einzelschrittmodus mit F10 starte und dann immer wieder
F10 drücke wird doch der Code Schritt für Schritt abgearbeitet (zumindest springt der gelbe Pfeil immer weiter). In den beiden Fenstern am unteren Rand erscheint keine Meldung. Und irgendwann kommt halt die Stelle an der das Spiel gestartet werden soll. Das klappt dann auch für ca ne Sekunde, dann ist alles schwarz und es kommt o.g. Meldung.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

22.01.2006, 16:53

Du kannst per F9 Haltepunkte festlegen(da wo der CUrsor gerade ist) und per F11 in Anweisungen reinspringen
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

9

22.01.2006, 22:06

Danke für den Tipp, jetzt er wenigstens was ausgespuckt:
Ist aber soviel, daß ich gar nicht weiß, wo ich anfangen soll. Es sind auch Fehler aus Bereichen aufgeführt, an denen ich gar nichts geändert habe.
Die häufigste Fehlermeldung ist:
CXX0030:Fehler:Ausdruck kann nicht ausgewertet, und zwar eigentlich für alle Variablen.
Die einzigen anderen Fehlermeldungen sind:
m_AsteroidList {...}
- allocator {...}
m_fAsteroidTimer -1.07374e+008
m_bGameRun 204 'I'

Wenn ich auf den unteren Registerkarten "Lokal" oder "This" anklicke habe ich als Oberbegriff die Meldung
This - 0x0012fefc

Ich hoffe, daß das jetzt was nützliches ist

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

23.01.2006, 00:08

Tja also zur Vorgehenesweise mit einem Debugger. Man setzt einen Haltepunkt dahin wo man glaubt, dass der Fehler seinen Anfang hat. Nun geht man solange mit F10 weiter bis es nach einer Funktion die Fehlermeldung ausgibt. Nun startet man einen neuen Versuch und springt dieses mal in besagte Funktion rein und geht darin mit F10 weiter. Diesen Vorgang wiederholt man solange bist man die Fehlerquelle gefunden hat.

Es gibt nur wenige Fälle wo diese Methode nicht zum Ziel führt.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige