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:

Bildschirm friert ein

 
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
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 18.01.2006, 16:26    Titel: Bildschirm friert ein Antworten mit Zitat

Hallo Leute!

Ich habe letzte Tage mal eine freeBASIC-Programm programmmiert, das den SCREEN 19 verwendet.
Neuerdings bleibt das Programm allerdings immer stehen und nichts tut sich.
Das Programm stürzt auch nicht ab, es kommt keine Fehlermeldung à la "Wasweisich.EXE hat ein
Problem festgestellt und muss beendet werden"; es bleibt nur alles stehen, d.h. der Bildschirm friert komplett ein.
Ich habe die neueste Version von FB (0.15b), also kann es daran eigentlich nicht liegen, oder?
Den Code kann ich schlecht posten, da er ~49KB hat und für den Programmierwettbewerb ist.

Hat trotzdem jemand eine Idee, woran es liegen könnte?

Danke schonmal im Vorraus,
jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.01.2006, 17:46    Titel: Antworten mit Zitat

Bleibt das Programm immer an einer bestimmten Stelle stehen?

Das kann man z.B. ganz gut herausfinden, indem man eine Sub wie diese hinzufügt
Code:
SUB BlackBox(LetztePosition As Integer)
DIM f as integer
f=FREEFILE
OPEN "logbuch.txt" FOR OUTPUT AS #f
PRINT #f, "Letzte Programmstelle: "; LTRIM$(STR$(LetztePosition))
CLOSE #f
END SUB


...und dann mit einem kleinen Wegwerfprogramm alle 15 Zeilen oder so einen Aufruf BlackBox <nr> einfügt. Dann kann man in der Logdatei nachgucken, wo sich das Unglück ereignet. lächeln
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 18.01.2006, 18:28    Titel: Antworten mit Zitat

also... es kann sein (war öfterws bei mir) dass screenlock stehen bleibt und nicht mehr entsperrt wird. damit friert alles ein. Kontrollier das mal.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 18.01.2006, 19:34    Titel: Antworten mit Zitat

am besten ists du besorgst dir insight und debuggst das program. dazu mußt du deinen source mit dem switch -g compilieren und dann die exe in insight öffnen.

http://ratatoskr.dragonhill.cc/public/projects/insight.rar

damit kannst du durch dein program durchsteppen und variablen anzeigen ( achtung all variablennamen müssen bei watch groß geschrieben werden! )
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 18.01.2006, 20:08    Titel: Antworten mit Zitat

Also ich hatte mal ein ähnlichen Bug, weil ich ein Array falsch dimensioniert hatte, gefunden hab ich den Bug mit diesem Code:
Code:
#Define Debug 0
 'Debug Meldungen in Consolen Fenster
 'Genauer der Namen der Aufgerufenen Subroutine
 '(nur möglich wenn nicht mit "-s gui" Compiliert!)
 ' 0 aus
 ' 1 Ein

Code:
    #If Debug=1
        #Define logdata ? #3,
        open CONS for output as #3
        ? #3,"Start"
    #Endif

Nun hab ich am Anfang jeder Subroutine das eingeschrieben:
Code:
    #If Debug=1
        logdata "Name der Sub"
    #Endif

(ählich wie die Idee von Sebastian)
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.01.2006, 00:06    Titel: Antworten mit Zitat

Erstmal danke für alle Antworten lächeln

Aber auf die Idee, das Programm Schritt für Schritt abzuarbeiten und alle Variablen
(oder zumindest die relevanten) anzeigen zu lassen, bin ich auch schon gekommen...
Das Problem ist, dass der Fehler immer an unterschiedlichen Stellen auftritt. Naja, das Programm
war ja - wie schon erwähnt - das Mau Mau Spiel für den Programmierwettbewerb, mit dem ich
allerdings - sollte es nicht wider Erwarten eine erneute Rückverschiebung des Einsendeschlusses
geben - auf keinen Fall fertig werde traurig ...

So wie es aussieht, werde ich das Programm erst mal auf Eis legen, denn in der Frist bis Freitag
schaffe ich es auf keinen Fall, den Fehler einzukreisen, zumal das Programm erst halb
fertig ist und ich schulisch nicht gerade geschont werde...

Trotzdem danke für eure Hilfe.

Schönen Abend noch,
jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 19.01.2006, 01:07    Titel: Antworten mit Zitat

mal nen debugger mitlaufen lassen?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.01.2006, 17:13    Titel: Antworten mit Zitat

Wo gibt's den?

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 19.01.2006, 17:15    Titel: Antworten mit Zitat

@jb: Du hast Post. lächeln
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 23.01.2006, 19:45    Titel: Antworten mit Zitat

Wen's interessiert: Ich habe den Fehler gefunden; es war nur eine Variable, die nicht auf 0 gesetzt wurde XD
Trotzdem danke an alle!

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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