Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Großes Programm mit unerklärlichen Fehlern!?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 17.10.2007, 13:18    Titel: Großes Programm mit unerklärlichen Fehlern!? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 17.10.2007, 13:22    Titel: Antworten mit Zitat

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. lachen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 17.10.2007, 15:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 17.10.2007, 16:09    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 17.10.2007, 16:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 17.10.2007, 17:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 17.10.2007, 20:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



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

BeitragVerfasst am: 17.10.2007, 20:22    Titel: Antworten mit Zitat

...wie z.B. negative Windowhandles, oder einfach NULL bei wichtigen Parametern (NULL beim Wndproc lachen )
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz