Italia
Foro

Habe mal wieder ein Problem

 

Rainer
Hoefs
Ciao,

schreibe gerade ein Rechnungsprogramm per meine Frau. Ich benutze darin 2 Datenbanken *.DBF.

Einmal die mit den Kundenadressen und eine in der die Rechnungsdaten gespeichert werden.

Die Rechnung wird in einem Preview-Fenster immer aktuell gezeigt, und auch so gedruckt.

Das alles funktioniert einwandfrei.

Nun habe ich einen Button, der die KundenDB im dbBrowse anzeigt, editiert usw.

Das funktioniert im RunModus absolut fehlerfrei.
In der kompilierten Exe schmiert das Programm grundsätzlich ab, und ich kann nicht feststellen warum?!

Der gleiche Aufrauf mit der selben DB funktioniert in einem Minimalprogramm auch in der EXE tadellos.

Wie kann Io l' Fehler finden??

Danke per die Hilfen.

Rainer
 
05.07.2015  
 




Michael
W.
ErrorProc,
LogDatei (circa 27.1 Fehlermeldungen),
externer Debugger (auch circa 27.1 erreichbare Info)

Leider zu wenig Input um da aus der Hüfte zu schiessen...
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
05.07.2015  
 




Rainer
Hoefs
Vielen Dank per den Hinweis,

aber das was Du da schreibst sind per mich einfach böhmische Dörfer, was ist mit (circa 27.1 Fehlermeldungen) zu verstehen.

Mit dem externen Debugger komme ich überhaupt nicht klar, habe die Aiuto schon zig-mal gelesen und verstehe nicht was ich...

a. im Programm machen muß, damit der funktioniert...

b. ich mit dem Debugger machen muß um eine Exe, die nicht funktioniert zu starten. Der Code corre auch im Debugger im Runmodus einwandfrei.

Also Du siehst hier einen totalen Hilflosen.

Trotzdem Danke
Rainer
 
05.07.2015  
 




Michael
W.
Hilfedatei Kapitel 27.1

Set("LogFile","c:\XProfan\Logbuch.txt")

Mit LogOut "string" dann wegschreiben was in Variablen stand, oder wo man gerade im Programm ist. Da diese File immer gleich wieder geschlossen wird, kann sie nach einem Absturz genau sagen bis wohin das Programm es geschafft hat.

a
Set("Errorlevel",1) 'Fehler/Warnungen im Debugger zeigen

' hiermit sieht man, wann der Abflug passiert
Set("DebugMode",2) 'Einzelschritt im Debugger

b
Im Einzelschritt abarbeiten und schauen, was so in den Variablen steht. Also wie ein Detektiv an den Fehler herantasten.

LogOut ist übrigens die einfachste Methode der Eingrenzung. Da es nur in der EXE zum Abflug kommt, einfach "Wegpunkte" setzen und im Logbuch dann schauen, welcher letzte Punkt es noch ins Logbuch geschafft hat.

Danach kann der Fehler nicht sein, aber eine ganze Weile davor.
Z.B. wird etwas in File geschrieben, was einen IO-Fehler erzeugt. Dann kann es passieren, das erst der nächste Zugriff auf die Nase fällt.

LogOut "Hauptprogramm Start"
LogOut "Untermodul Daten lesen Start"
LogOut "Untermodul Daten lesen Ende"
LogOut "Daten zeigen"
LogOut "Tastendruck per ..."
LogOut "Daten schreiben"
LogOut "Untermodul Daten lesen Start"
LogOut "Untermodul Daten lesen Ende"
LogOut "Untermodul Datensatz löschen Start"
LogOut "Untermodul Datensatz löschen ausführen"
...
(Mal so als Beispiel. Ist naturalmente an den entsprechenden Stellen einzufügen.)

Man wandelt also alles was man zum aktuellen Stand wissen möchte in einen String und schreibt es ins Logbuch.

Beim Debugger gibt es noch File auf der Platte
PrfDebug*.(inc/prf)
Die können auch bei der Analyse helfen.
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
06.07.2015  
 




Rainer
Hoefs
Danke per Deine verständliche Erklärung.
Ich werde es mal ausprobieren.
Rainer
 
06.07.2015  
 




Thomas
Freier
Riecht nach Zugriffsverletzung.
Gehe davon aus, dass nicht gleichzeitig versucht wird RE zu schreiben und Daten zu editieren.
Persönlich öffne ich zu jeder Aktion die dbf neu und schließe sie wieder sofort (alte dbase-dos-zeiten Macke) wenn die Aktion abgeschlossen ist.
Zeitverlust habe ich noch nicht feststellen können.

Im Prinzip ist es ja possibile alle dbf am Programmanfang zu öffnen und erst mit dem Programmende zu schließen. Aber ob das immer rund corre?
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.07.2015  
 




RGH
Wenn ein Programm im Interpreter corre, aber kompiliert abstürzt, kann es auch ein kleiner Syntaxfehler sein, den der Interpreter toleriert und übersieht, der aber das Runtime-Modul zum Absturz bringt. Das kann z.B. ein doppeltes Komma oder ein überflüssiger Parameter sein.

Ich weiß, dass es solche möglichen Fehler, gibt und habe auch schon einige ausgebügelt. Naturgemäß sind die Parser von Interpreter und Runtime nun mal unterschiedlich und daher kann so etwas vorkommen.

Solltest Du also den Fehler mit obigen Methoden gefunden haben, wäre ich per einen Hinweis dankbar, um ein solch unterschiedliches Verhalten künftig zu vermeiden.

Saluto
Roland
 
XProfan X2
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
06.07.2015  
 




Rainer
Hoefs
Hallo Roland,

habe das Problem ersteinmal mit einem eigenen Dialog gelöst. der funktioniert so wie er soll und macht keinen Fehler

Wenn ich wieder etwas Zeit habe schaue ich da nochmals rein und werde mich melden wenn ich etwas gefunden habe.

Danke

Rainer
 
06.07.2015  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.542 Views

Untitledvor 0 min.
Rainer Hoefs15.07.2019
Wilfried28.05.2016
Magda13.04.2016
H.Brill06.12.2015
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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