Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pimpfling am 10.12.07 - 15:56:46

Titel: seltsamer Debugger
Beitrag von: pimpfling am 10.12.07 - 15:56:46
Hallo

Ich habe hier folgendes Phänomen:
Wenn ich meinen LS Agenten per Knopfdruck ausführe bekomme ich die folgenden zwei Fehlermeldungen.
Type mismatch on external name: LOTUSNOTESAGENT

und

Main: TERMINATE: Object variable not set

Wenn ich nun meinen Agenten im Debugger laufen lasse, funktioniert alles wunderbar und mein Agent läugt durch.
Der Agent läuft lokal und ich würde gerne die Stelle herausfinden bei der er abschmiert.

Gibt es noch einen Trick mit dem man den Debugger zum debuggen kriegt?
Titel: Re: seltsamer Debugger
Beitrag von: umi am 10.12.07 - 16:01:26
Man könnte ein Errorhandling einbauen z.B. mit dem Openlog (von http://www.openntf.org (http://www.openntf.org) )
Dies hilft sicher auch schon viel.
Titel: Re: seltsamer Debugger
Beitrag von: ata am 10.12.07 - 16:05:22
... bau am Anfang einen Option Explicit oder Option Declare ein - damit erhälst du beim Speichern bereits bestimmte Hinweise auf die Konsistenz deines Codes. Mit Fehlerhandling => On Error Goto ... - lässt sich auch einiges abfangen...

Wie ist dein Agent getriggert - Zeitgesteuert etc?

Eventuell kannst du Print-Statements ebenfalls Fehlern auf die Schliche kommen. Das Verhalten des Debuggers ist ab und zu wie von dir beschrieben - damit habe ich mich schon abgefunden. Manchmal hilft auch ein Recompile der Datenbank...

In deinem Fall lässt mich die erste Meldung an einen Recompile denken. Die zweite Meldung wird eine Folgemeldung im Zusammenhang mit der ersten Meldung sein...

Toni
Titel: Re: seltsamer Debugger
Beitrag von: pimpfling am 10.12.07 - 16:17:29
WOW, ihr seid ja schneller als die Polizei erlaubt :)
Vielen Dank für die schnellen Antworten.
Ich werde das mal probieren und melde mich dann wieder.
Titel: Re: seltsamer Debugger
Beitrag von: pimpfling am 10.12.07 - 16:38:51
Ich habe jetzt einmal recompiled --> ohne Fehlermeldung.
Ich habe jetzt Option Explizit am Anfang stehen --> keine Fehlermeldung.

Der Agent läuft dann später auf Knopfdruck.
Titel: Re: seltsamer Debugger
Beitrag von: pimpfling am 10.12.07 - 17:50:22
ok, mit 100x print xxx habe ich die Stelle nun gefunden.
Vielen Dank für die Hilfe.
Jetzt gehts auch ohne Dbugger :)

Schönen Feierabend.
Titel: Re: seltsamer Debugger
Beitrag von: koehlerbv am 10.12.07 - 19:31:57
Hallo Stefan, kannst Du noch etwas mehr zu wahren Ursache sagen?

Fakt ist: Der Debugger muss sich aus spezifischen Gründen mehr "merken" als der Client. Das kann dazu führen, dass unter bestimmten Umständen (häufig ein Zusammenspiel von Frontend- und Backend-Objekten) im Client das Objekt bereits vernichtet ist, dem Debugger aber doch noch zur Verfügung steht. In wie weit das immer sinnvoll ist, mag ich hier nicht diskutieren, ich kann das auch nicht endgültig beurteilen.

Mit einem vernünftigen ErrorHandling hättest Du die Stelle aber eher gefunden. Sehr viel eher. Ich habe hier gerade für eine Woche einen "Lehrling" neben mir zu sitzen, und die erste Regel, die ich vermittelt habe: Keine Zeile Code ohne Option Declare ohne ErrorHandler. Ohne Ausnahme.

Bernhard
Titel: Re: seltsamer Debugger
Beitrag von: pimpfling am 11.12.07 - 10:11:08
Zum Hintergrund:

Ich mußte einen Agenten 'entschlacken' und umändern.
Der war allerdings so unsauber programmiert das viele Variablen nicht gedimt/deklariert wurden.
Nachdem ich Option Declare am Anfang zu stehen hatte, spuckte der Designer auch erstmal ein paar Fehlermeldungen aus.
Nachdem bereinigen dieser Fehler, hatte ich aber immer noch das Problem das der Agent mit Debugger funktionierte und ohne nicht.
Mit den prints im Code habe ich mich dann durch den Code 'debuggen' können.