Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 17.10.2007, 13:18 Titel: Großes Programm mit unerklärlichen Fehlern!? |
|
|
Moin,
ich hab schreibe gerade ein Programm welches bis jetzt:
-2523 Zeilen Quelltext +
-800 Zeilen in einer weiteren Quelltext datei +
-10kb große resource Datei
-etwa 30 Funktionen/Subs
-etwa 200 Variablen
also relativ groß.
Jetzt zu meinem Problem und zwar wenn ich z.B. ein Variable deklariere ( Am Anfang des Programms als SHARED ) dann verliert diese irgendwann ihren Wert oder hat plötzlich einen anderen Wert( nicht alle variablen aber ein paar ). Oft stürzt mein Programm auch ab wenn ich z.B. so eine Variable in einer MsgBox ausgeben will.
Gibt es bei FreeBasic irgendetwas zu beachten bei großen programmen?
Wie könnten solche Fehler enstehen?
MFG Thorben |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 17.10.2007, 13:22 Titel: |
|
|
Thorben hat Folgendes geschrieben: |
Wie könnten solche Fehler entstehen?
|
Hantierst du mit Pointern? (Wahrscheinlich.)
Dann ahcte darauf, dass du die nicht auf irgnedwelche Variablen platzierst. Prüfen, ob du Subs/Functions oder APIs ungültige Werte übergibst.
Dem Programm ein bisschen mehr Stack-Speicher geben. (Wobei 1MB eigentlich ausreichen sollte. oO)
Code: |
fbc.exe meinprogramm.bas -t 2048
|
Auf "Programmcode posten" verzichte ich glaub ich.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 17.10.2007, 15:33 Titel: |
|
|
Danke Mao hab schon ein paar Fehler beheben können aber es sind immer noch ein paar merkwürdige dinger da.
Was meinst du mit "ungültige Werte"?
MFG Thorben |
|
Nach oben |
|
 |
Heizi

Anmeldungsdatum: 19.01.2005 Beiträge: 309
|
Verfasst am: 17.10.2007, 16:09 Titel: |
|
|
das mit variablen die plötzlich ihre Werte ändern kann auch passieren
wenn du in nen array reinschreibst mit ungültigem index,
das ist mir mal passiert in c++ hab da ne ganze weile für gebraucht bis ich
den Fehler gefunden hab. K.A. wie das bei fb so ist ich hab diesbezüglich nur begrenzte erfahrung. kannst dir ja an unterschiedlichen stellen des codes
die werte der variable anzeigen lassen und so den fehler lokalisieren.
zu den abstürzen bei den message boxen da müsstest du glaub ich schon den code posten damit dir wer weiterhelfen kann.
Gruß Heizi |
|
Nach oben |
|
 |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 17.10.2007, 16:44 Titel: |
|
|
Eigentlich sollte das so gehen:
Code: |
...
DIM SHARED cPath AS STRING
cPath = "C:\gm\"
...
MessageBox( NULL , cPath , "Info" , MB_OK )
...
|
So überprüfe ich an bestimmten stellen ob der Inhalt der Variable noch stimmt. Aber bei einigen Variablen stürzt das Programm ab. Wenn ich den MsgBox aufruf wegnehme geht alles, ansonsten kommt wird das Programm beended und Windows gibt die Meldung aus( Problembericht senden... )
MFG Thorben |
|
Nach oben |
|
 |
Heizi

Anmeldungsdatum: 19.01.2005 Beiträge: 309
|
Verfasst am: 17.10.2007, 17:07 Titel: |
|
|
also dieser code scheint zu gehen:
#include "windows.bi"
DIM SHARED cPath AS STRING
cPath = "C:\gm\"
MessageBox( NULL , cPath , "Info" , MB_OK )
muss wohl am variablen inhalt liegen
MFG Heizi |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 17.10.2007, 20:03 Titel: |
|
|
Befass mich nicht so mit WinAPI, aber stell z.B. sicher, dass deine Strings die du übergibst (sofern ZSTRING) auch ein 0-Byte-Terminierungszeichen haben.
Mit ungültigen Werten meine ich solche, die zu einem Absturz führen können, weil sie ganz einfach so nicht erwartet wurden. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
|