Debuggen eines eventgesteuerten Systems

Xbase++-IDE - Workbench, Visual Xbase

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Debuggen eines eventgesteuerten Systems

Beitrag von Manfred »

Hi,

ich kriege gerade mal wieder einen Affen. Habe ich wieder irgendwas übersehen, oder ist es nahezu unmöglich ein eventgesteuertes Programm zu debuggen? Jedesmal, wenn ich bei einem STOP den Bildschirm in den Einzelschrittmodus zum Debugger wechsel, geschieht doch ein Ereignis und sei es nur, dass es einen KillInputFocus gibt für ein SLE oder so.
Wie will man denn da vernünftig testen....

Ich bin gerade dabei SLEPic durchzutesten um überhaupt mal zu verstehen, was denn da so alles passiert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag von AUGE_OHR »

hi,

um Event zu "debuggen" gibt es den EventSpy.DLL. Die muss man in
seine Application einbinden und bekommt dann im seperatem Fenster
die Events (einstellbar) angezeigt.

gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

verstehe ich jetzt nicht. Ich meine nur, dass egal was ich mache, ich jedesmal im Programm einen Event auslöse und somit gar nicht richtig sehen kann was passiert, oder meinst Du das etwa?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
das ist genau der Grund, warum ich in solchen Situationen immer die Inhalte der Variablen und sonstige Angaben, die mich interessieren, in eine Textdatei schreibe und diese dann auswerte.
Anders wird es wohl (zumindest im DOS-Debugger, den VX nutze ich noch nicht) nicht gehen!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

ich möchte sehen, was im allgemeinen passiert. Es ist ja alles nachprogrammiert in SLEPic. Allerdings sind da ein paar Dinge, die wohl nicht so richtig klappen und das möchte ich gerne ausprobieren, welchen Weg die Dinge da gehen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
na eben - darum musst Du an den entsprechenden Stellen halt einfach was in eine Textdatei schreiben und dann kannst Du danach auswerten, was in welcher Reihenfolge ausgeführt wurde.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hm,

evtl. drücke ich mich wieder falsch aus.

Also, mich würde interessieren, warum SLEPIc z.B. bei Picture Angaben die ENFT Taste nicht richtig verarbeitet. Weiterhin würde mich interesseiern, was generell passiert, wenn die Picture Maske angegeben wird. Leider geht das nicht, weil ich bei jedem Tastendruck in die Keyboard Methode gelange, dann aber von dort aus gleich in das nächste SLE. Egal was ich mache, ich kann nicht den Einzelschrittmodus machen. Das Teil hüpft hin und her, weil es halt alles EVENTS sind, die da durchknallen.

Naja, ich werde mir das Morgen nochmal in Ruhe und ausgeschlafen ansehen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

NA EBEN!
Darum musst Du in der :keyhandler-Methode einzelne Ausgaben in Deine Debug-Textdatei einbauen, damit Du im Nachhinein weißt, wo was gefeuert hat.

Viele Grüße,
Maritn
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

aha,

na da muß ich wohl noch ein wenig umdenken.

Danke.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

ich habe keine Ahnung, wie man die eventspy.dll einbindet, bzw. wie man dann das Fenster erhält, wie im Beispiel....

Mit anderen Worten: Nix neues.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag von AUGE_OHR »

hi,
Manfred hat geschrieben: ich habe keine Ahnung, wie man die eventspy.dll einbindet,
bzw. wie man dann das Fenster erhält, wie im Beispiel....
zunächst einmal Eventspy "auspacken"
und mit "MakeDLL.BAT" die DLL
und LIB erstellen und in das aktuelle Alaska Verzeichniss kopieren.
Wenn er die LIB nicht erstellen will und er wegen fehlender *.DEF
"meckert" dann die *.BAT erweitern :

Code: Alles auswählen

Xpp ... /dll ...
Xpp ... /dll ...
[color=red]XPPFILT eventspy.OBJ /F:eventspy.DEF[/color]
aimplib eventspy.def
hm ... irgendwie funktioniert die daraus gewonnene LIB/DLL nicht so wie
gewünscht. Also doch besser die "original" LIB/DLL aus dem ZIP File
verwenden.

füge an den Anfang deiner Xbase++ Application

Code: Alles auswählen

#PRAGMA LIBRARY( "EVENTSPY.LIB" )
ein.

Vor deiner Eventloop kommt nun

Code: Alles auswählen

  
EventSpy():logSelected := {|a| MyFunc( a ) }
und die Function MyFunc könnte so aussehen :

Code: Alles auswählen

FUNCTION MyFunc( aEvent )
LOCAL cString

   cString := EventSpy():format( aEvent[1], aEvent[2], aEvent[3], aEvent[4] )

   IF aEvent[1] <> NIL
         MsgBox( "The numeric event constant is:" + Chr(13) +Chr(13) + ;
                  LTrim( Str(aEvent[1]) ), "Hooked into the Event Spy" )
   ENDIF

   QOut( cString )

RETURN cString
In der Eventloop musst du nun

Code: Alles auswählen

      #pragma Info( NOINIT )
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      #pragma Info( INIT )
nutzen.
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Jimmy,

Danke für die ausführliche Hilfe. Das Fenster erscheint jetzt auch, aber es wird nichts angezeigt. Ich denke mal, irgendwas habe ich wieder übersehen....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag von AUGE_OHR »

Hi,
Manfred hat geschrieben: Danke für die ausführliche Hilfe. Das Fenster erscheint jetzt auch, aber es wird nichts angezeigt. Ich denke mal, irgendwas habe ich wieder übersehen....
hast du die LIB/DLL aus dem Zip File genommen weil das Ergebniss mit
MakeDlll.BAT nicht funktioniert ?
kommst du an die "Option" ran ?
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ja,

habe ich genommen und an die Optionen komme ich auch ran. ich habe auch ein wenig damit gespielt, aber kein Muckser zu entlocken. :(
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Jetzt geht es.

ich habe aber die eventspy.lib ins Projektfile eingebunden und als Pragma aus der PRG rausgenommen
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag von AUGE_OHR »

hi,
Manfred hat geschrieben: Jetzt geht es.

ich habe aber die eventspy.lib ins Projektfile eingebunden und als Pragma aus der PRG rausgenommen
ja so geht es auch. und schon "Ergebnisse" ?
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ja,

Ergebnisse habe ich. Aber ich kann nichts damit anfangen. Der Bildschirm wird vollgeschrieben, dass ich gar nicht so schnell gucken kann. Mit den Daten kann ich nichts anfangen. Ich habe aber im Moment ein ganz anderes Problem, das mir die Schweißperlen, so groß wie Golfbälle, auf die Stirn treibt. Deshalb muß ich den Spion erst mal hinten dran hängen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:Ja,

Ergebnisse habe ich. Aber ich kann nichts damit anfangen. Der Bildschirm wird vollgeschrieben, dass ich gar nicht so schnell gucken kann. Mit den Daten kann ich nichts anfangen.
Hi,

darum bevorzuge ich den uralten SET ALTERNATE TO LOG.TXT ;-)
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag von AUGE_OHR »

hi,

beim Eventspy gibt es den Button "Option". Wenn man da ran kommt kann
man bestimmen "welche" Events angezeigt werden bzw. in das Logfile
geschrieben wird.

Ich bin mir jetzt nicht sicher, aber es könnte sein das die v1.9x Version
irgendwie ging (komische Effekte wie bei dir) und ich dann einfack mal
"andere" Version ausprobiert hatte ... Ich werde mal Datum/Uhrzeit
vergleichen müssen ...
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

ich habe überall einen Haken rein gemacht. Aber ein Logfile konnte ich nirgends finden.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Beitrag von AUGE_OHR »

hi,

mir fällt gerade ein das es noch eine "spezial" Version gibt unter
http://www.knowlexbase.com/en/software/ ... index.html
gruss by OHR
Jimmy
Antworten

Zurück zu „Workbench (ab 2.0), VX (bis 1.9 SL1)“