Deutsch
Forum

Habe mal wieder ein Problem

 

Rainer
Hoefs
Hallo,

schreibe gerade ein Rechnungsprogramm für 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 ich den Fehler finden??

Danke für die Hilfen.

Rainer
 
05.07.2015  
 




Michael
W.
ErrorProc,
LogDatei (über 27.1 Fehlermeldungen),
externer Debugger (auch über 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 für den Hinweis,

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

Mit dem externen Debugger komme ich überhaupt nicht klar, habe die Hilfe 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 läuft 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 Datei 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 Datei 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 für ..."
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 natürlich 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 Dateien 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 für 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 möglich alle dbf am Programmanfang zu öffnen und erst mit dem Programmende zu schließen. Aber ob das immer rund läuft?
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.07.2015  
 




RGH
Wenn ein Programm im Interpreter läuft, 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 für einen Hinweis dankbar, um ein solch unterschiedliches Verhalten künftig zu vermeiden.

Gruß
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  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.544 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs15.07.2019
Wilfried28.05.2016
Magda13.04.2016
H.Brill06.12.2015
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