Deutsch
Forum

Super-Absturz

 
- Seite 1 -



Walter
Hallo,

(Freeprofan32)
habe bei einem größeren funktionierenden Programm ein wenig hier verändert und und ein wenig dort hinzugefügt - beim nachfolgenden Start im Interpreter ein kurzes Aufflackern - und nichts weiter. Auch der Compiler stürzte sogleich nach seinem Start mit einem knappen Fehlermeldungsschrei ab.
Dies hier blieb dann nach längerem Recherchieren und anschließendem Eindampfen des Problems als Auslöser übrig:
cls
declare text&,Name$
Text&= CREATE("Text",%HWND,"",0030,0020,0550,0150)
Name$="Hugo"
' Das fehlende Anführungszeichen vor dem Rufzeichen
' in der nächsten Zeile killt Interpreter und Compiler
settext text&,Name$+!"
waitinput

Ich hatte einfach ein Anführungszeichen vergessen.

Nebst dem Spaß, Compiler und Interpreter dadurch lahmlegen zu können, dass man ein Anführungszeichen entfernt, nun eine Frage: Wie kann ich die Fehlermeldung von Interpreter/Compiler in eine Datei umleiten oder auf dem Bildschirm für länger als 1/10 Sekunde sehen - ich weiß leider noch immer nicht, ob diese Meldung mir vielleicht 30 Minuten Suchzeit erspart hätte, da ich sie bisher noch nicht lesen konnte...
 
05.03.2016  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


RGH
Ok:

1. Die Stelle an der FreePascal empfindlicher reagiert als Delphi wurde gefunden und bereinigt. Der Fehler trat nur auf, wenn das Anführungszeichen das letzte Zeichen der Zeile war, selbst wenn es eine Kommentar-Zeile war.
Der Interpreter reagiert nun wie er soll und meldet den Fehler "Stringende nicht gefunden." (Natürlich nicht bei Kommentar-Zeilen)

2. Der Compiler überprüft jetzt, ob eckige und Runde Klammern ausgewogen sind und die Anzahl der Anführungszeichen gerade ist.

In XProfan wird dies in der kommenden Version X3.1 realisiert sein, bei FreeProfan 32 und 64 mit der jeweils nächsten Version.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.03.2016  
 




RGH
Einen Weg, diese Fehlermeldung (ohne Debugger) länger anzuzeigen habe ich auch noch nicht gefunden, aber in der Regel dürfte sie auf eine Schutzverletzung hinweisen und somit nicht hilfreich sein.

Und ja: Eigentlich sollte hier, wie in XProfan, eine ordentliche Fehlermedung "Stringende fehlt!" erscheinen.

In einigen Punkten ist FreePascal, mit dem FreeProfan kompiliert wurde, leider etwas empfindlicher als Delphi, mit dem XProfan kompiliert wird. Ich muss mal schauen ...

Gruß
Roland
 
XProfan X3
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
05.03.2016  
 




Walter
Jetzt funktioniert es ja wieder, und darüber bin ich sehr froh! Man ist aber reichlich hilflos, wenn man nicht weiß, wo man zu suchen beginnen soll. Und so ein kleines, fehlendes Zeichen in 7.000 Zeilen Code ist nicht leicht zu finden...
Danke, beste Grüße
Walter
 
05.03.2016  
 




E.T.
Eben probiert: XPSE "merkt" es auch meckert mit Fehlermeldung.
Vlt. kann man dies ja derweil irgendwie zur Fehlersuche nutzen.
 
XProfan X3
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
05.03.2016  
 




Walter
In dem kurzen Beispiel findet XPSE tatsächlich den Fehler, im großen Programm jedoch leider nicht (weshalb auch immer).
Danke aber jedenfalls für die Hilfe - ist zumindest eine weitere Möglichkeit, bevor man sich der großen Verzweiflung hingibt...
Liebe Grüße
Walter
 
05.03.2016  
 




Jörg
Sellmeyer
Sowas kann bei der Fehlersuche hilfreich sein:
Var Datei$ = Par$(1)' hier die ensprechende Datei einsetzen
Declare Zeile$,i%,Anzahl%
Assign #1,Datei$
Reset #1

WhileNot EoF(#1)

    Inc i%
    Input #1,Zeile$'"

    If InStr("\q",Zeile$)

        Anzahl% = Len(Zeile$,"\q")
        CaseNot Anzahl% Mod 2:AddString Str$(i%) + " " + Zeile$

    EndIf

Wend

ListBox$("Ergebnis",2)
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
05.03.2016  
 



hat das Thema nach FreeProfan verschoben.
 
06.03.2016  
 




Walter
Das ist eine gute Idee! Man findet damit natürlich auch Stellen, wo die fehlenden Anführungszeichen erst in Fortsetzungszeilen auftauchen, doch sind die schnell als unschuldig zu entlarven.
Ja, danke, funktioniert, ist super!
LG
Walter
 
06.03.2016  
 




Jörg
Sellmeyer
Man kann es noch sehr einfach erweitern, um z. B. fehlende Klammern zu finden. Die können auch manchmal solche Probleme bereiten.
Var Datei$ = Par$(1)
Declare Zeile$,i%,Anzahl%
Assign #1,Datei$
Reset #1

WhileNot EoF(#1)

    Inc i%
    Input #1,Zeile$'"

    If InStr("\q",Zeile$)')

        Anzahl% = Len(Zeile$,"\q")
        CaseNot Anzahl% Mod 2:AddString Str$(i%) + " Quote Error " + Zeile$

    EndIf

    If Match$("(~(|~))",Zeile$) > ""

        If Len(Zeile$,"(") <> Len(Zeile$,")")

            AddString Str$(i%) + " Bracket Error " + Zeile$

        EndIf

    EndIf

Wend

ListBox$("Ergebnis",2)
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.03.2016  
 




H.Brill
Ich fände es auch gut, wenn Roland dazu
noch was einfällt. Hatte solche Probleme
mit den Freeprofanversionen auch öfters.

Besonders, wenn die Meldung kommt :


Speicher für Integer Variablen erschöpft


oder so ähnlich.

Da kann man u.U. recht lange nach dem Fehler suchen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
06.03.2016  
 




Jörg
Sellmeyer
Da muss man eigentlich immer nach einer Variablendeclaration innerhalb einer Schleife suchen, würde ich mal vermuten.
Wenn du mein Programm anpasst und nach " var " und "declare " suchst, bekommst du zumindest alle Zeilen des Programms aufgelistet, die das enthalten und kannst so den Bereich eingrenzen.
Vielleicht geht das sogar schneller mit der Suchfunktion im verwendeten Editor.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.03.2016  
 




H.Brill
Was ich meinte, hat nicht nur mit Variablendeklarationen
zu tun. Auch wenn ein Speicher zu klein dimensioniert wurde
u.v.a. kommen solche Meldungen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
06.03.2016  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

22.874 Betrachtungen

Unbenanntvor 0 min.
Gast.0815 vor 23 Tagen
Member 862464111.05.2024
p.specht01.08.2021
Walter22.05.2019
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie