LabVIEWForum.de
Aufgetretenen Fehler/Warnung orten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Aufgetretenen Fehler/Warnung orten (/Thread-Aufgetretenen-Fehler-Warnung-orten)



Aufgetretenen Fehler/Warnung orten - TSC - 10.12.2008 17:10

Hallo zusammen,

aus textbasierten Programmiersprachen kennt es wohl jeder:

"FEHLER in Zeile xy! BESCHREIBUNG und CO."

gibt es etwas vergleichbares in LabVIEW? Ich fange viele Fehler und Warnungen ab, oft kommen sie von einem bestimmten SubVI. Leider ist dieses mehrfach in dem Programm eingebunden. Wie finde ich heraus an welcher Stelle der Fehler genau aufgetreten ist?

Klar, wenn ich daneben sitze kann ichs sehen, aber das System läuft auf nem Server weit, weit weg und startet beim auftreten eines bösen Fehlers neu. Ich seh also nur im LogFile den Fehler-Code und seine Beschreibung (die leider oft sehr dürftig ist).

LG
Torsten


Aufgetretenen Fehler/Warnung orten - eg - 10.12.2008 17:13

Kommt denn Source bei dir nicht in die Log-Datei.


Aufgetretenen Fehler/Warnung orten - TSC - 10.12.2008 17:20

' schrieb:Kommt denn Source bei dir nicht in die Log-Datei.


Doch schon,.. aber da steht dann sowas drin:


"Error creating instance of System.Net.Mail.MailAddress in assembly System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, (System.FormatException: Die angegebene Zeichenfolge besitzt nicht das für eine E-Mail-Adresse erforderliche Format.
) in Email.vi"


Aber das besagte VI Email.vi verwende ich an vielen Stellen und nu habe ich keine Ahnung an welcher Stelle die Formatierung falsch ist, ich muss also alle anbindungen des VIs überprüfen??


Aufgetretenen Fehler/Warnung orten - gottfried - 10.12.2008 17:54

Hallo

mit "Call Chain.vi" bekommst Du den Aufrufweg sehr schön als String - verwende ich immer

Viele Spass


Aufgetretenen Fehler/Warnung orten - TSC - 10.12.2008 20:19

' schrieb:Hallo

mit "Call Chain.vi" bekommst Du den Aufrufweg sehr schön als String - verwende ich immer

Viele Spass


Das werd ich morgen mal testen,..

Vielen Dank für eure Antworten.


Aufgetretenen Fehler/Warnung orten - TSC - 11.12.2008 09:35

Okay, das ist schon mal ein Anfang. Aber:


Mein Main VI versendet an vielen Stellen Emails. Durch das Einbinden des VIs "Call Chain" in dem VI Email erhalte ich also immer:

ERROR-MESSAGE:
Error creating instance of System.Net.Mail.MailAddress in assembly System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, (System.FormatException: Die angegebene Zeichenfolge besitzt nicht das für eine E-Mail-Adresse erforderliche Format.
) in Email.vi->MAIN_Raumluftstroemung.vi

CALL-CHAIN:
Email.viMAIN_Raumluftstroemung.vi

diese Info habe ich also schon in der Error-Message.


Ich erklär nochmal kurz mein Problem/meinen Wunsch:

Eine Fehlermeldung unter Sprachen wie Java/C# usw. sieht im Groben so aus:

Error in Klasse class1 in Zeile 33
->Error in Klasse class2 in Zeile 2
->Error in Klasse class3 in Zeile 45

Die Klassen sind die einzelnen VIs die voneinander aufgerufen werden. Man kann also genau sagen, dass der Fehler in class1 aufgetreten ist, beim Aufruf von class2 in Zeile 33. Dort wiederrum ist der Fehler entstanden durch den Aufruf von class3 in Zeile 2. Der eigentliche Fehler ist dann in class3 in Zeile 45 entstanden.

Ich suche nun nach einer möglichkeit, die einzelenen Zeilenangaben auf LabVIEW zu übertragen. Sprich, ich möchte genau festhalten, an welcher Stelle im Programm der Fehler aufgetreten ist.

Hier mal ein Bild dazu:


(oben True-Cases, unten False-Cases)
[attachment=15820]

Kann ich am Fehlerausgang feststellen, ob Email 1, 2 oder 3 schuld ist?

Liebe Grüße
Torsten


Aufgetretenen Fehler/Warnung orten - RoLe - 11.12.2008 09:53

' schrieb:CALL-CHAIN:
Email.viMAIN_Raumluftstroemung.vi

Error in Klasse class1 in Zeile 33
->Error in Klasse class2 in Zeile 2
->Error in Klasse class3 in Zeile 45

Die Klassen sind die einzelnen VIs die voneinander aufgerufen werden. Man kann also genau sagen, dass der Fehler in class1 aufgetreten ist, beim Aufruf von class2 in Zeile 33. Dort wiederrum ist der Fehler entstanden durch den Aufruf von class3 in Zeile 2. Der eigentliche Fehler ist dann in class3 in Zeile 45 entstanden.

Hier mal ein Bild dazu:
(oben True-Cases, unten False-Cases)
[attachment=43406:screensh...28984339.jpeg]

Kann ich am Fehlerausgang feststellen, ob Email 1, 2 oder 3 schuld ist?

So wie im Bild nicht, das entspricht ja auch nicht dem gezeigten Bsp mit den Class1-3. Das wäre dann das Email.vi im email.vi im email.vi.
Ansonsten gibt dir das CallChain die Aufrufkette wie bei den Class zurück. Die Zeilennummer wirst du nicht bekommen, da es keine Zeilen gibt.Wink
Ansonnsten liegt es an dir, in den Sub-VI's eine entsprechend detailiertere Fehlermeldung zu generieren.
Kenne mich mit Lvoop nicht so aus, aber wenn das Email.vi eine Class ist, wird das denke ich auch so stehen.

Wie wäre es das email.vi nur einmal in einer eigenen Schlaufe zu verwenden, und wenn es was zu mailen gibt, das auf eine Queue zu schreben.


Aufgetretenen Fehler/Warnung orten - TSC - 11.12.2008 10:00

' schrieb:So wie im Bild nicht, das entspricht ja auch nicht dem gezeigten Bsp mit den Class1-3. Das wäre dann das Email.vi im email.vi im email.vi.
Ansonsten gibt dir das CallChain die Aufrufkette wie bei den Class zurück. Die Zeilennummer wirst du nicht bekommen, da es keine Zeilen gibt.Wink
Ansonnsten liegt es an dir, in den Sub-VI's eine entsprechend detailiertere Fehlermeldung zu generieren.
Kenne mich mit Lvoop nicht so aus, aber wenn das Email.vi eine Class ist, wird das denke ich auch so stehen.

Wie wäre es das email.vi nur einmal in einer eigenen Schlaufe zu verwenden, und wenn es was zu mailen gibt, das auf eine Queue zu schreben.


Hum, ja hatte mir schon sowas gedacht wie: Es gibt keine Zeilen also keine Möglichkeit das herauszufinden. Eine passende Fehlermeldung würde bedeuten, im Aufrufenden VI einen String zu übergeben, da das Email.vi ja nicht weiß, von wo (gemeint ist welche Stelle im aufrufenden VI) es aufgerufen wurde. Das finde ich sehr unsauber.

Der Vorschlag mit der eigenen Schlaufe würde das Problem ja nur unter den Teppich kehren. Dann weiß ich zwar, dass der Fehler an der einen Stelle aufgetreten ist, aber ich weiß nicht, von wo die Daten kamen, die den Fehler verursacht haben. Ich denke ich muss einfach alle Daten in die Fehlermeldung aufnehmen und schaun ob man das zurückverfolgen kann.

Vielen Dank für die Tipps und Ideen, evtl bekomm ich ja was schönes gebastelt.