Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Debuggen eines eventgesteuerten Systems

Xbase++-IDE - Workbench, Visual Xbase

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Debuggen eines eventgesteuerten Systems

Beitrag von Manfred » So, 30. Dez 2007 20:51

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10747
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Beitrag von AUGE_OHR » So, 30. Dez 2007 21:04

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: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » So, 30. Dez 2007 21:06

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13810
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Martin Altmann » So, 30. Dez 2007 21:35

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: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » So, 30. Dez 2007 23:01

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13810
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Martin Altmann » So, 30. Dez 2007 23:07

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: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » So, 30. Dez 2007 23:11

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13810
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Martin Altmann » So, 30. Dez 2007 23:13

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: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Mo, 31. Dez 2007 8:37

aha,

na da muß ich wohl noch ein wenig umdenken.

Danke.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Do, 03. Apr 2008 18:37

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10747
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Beitrag von AUGE_OHR » Do, 03. Apr 2008 22:52

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: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Fr, 04. Apr 2008 8:57

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10747
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Beitrag von AUGE_OHR » Fr, 04. Apr 2008 16:36

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: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Fr, 04. Apr 2008 16:43

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Do, 24. Apr 2008 16:15

Jetzt geht es.

ich habe aber die eventspy.lib ins Projektfile eingebunden und als Pragma aus der PRG rausgenommen
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10747
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Beitrag von AUGE_OHR » Do, 24. Apr 2008 18:30

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: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Do, 24. Apr 2008 18:37

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13908
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Beitrag von brandelh » Do, 24. Apr 2008 23:58

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: 10747
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Beitrag von AUGE_OHR » Fr, 25. Apr 2008 0:33

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: 17160
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Beitrag von Manfred » Fr, 25. Apr 2008 7:28

Hi,

ich habe überall einen Haken rein gemacht. Aber ein Logfile konnte ich nirgends finden.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10747
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Beitrag von AUGE_OHR » So, 18. Mai 2008 5:13

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