INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Absturz Labview



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.04.2015, 13:16
Beitrag #11

rolfk Offline
LVF-Guru
*****


Beiträge: 2.292
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Absturz Labview
(27.04.2015 11:41 )R.Fuertig schrieb:  Kannst du dies näher erläutern?

Was Gerd sagt! Ein DLL Aufruf passiert außerhalb der Kontrolle von LabVIEW. LabVIEW hat grundsätzlich keinerlei Möglichkeit um zuverlässig festzustellen ob während der Ausführung etwas illegales gemacht wird. Es hat zwar Möglichkeiten entsprechende Exceptions abzufangen und Dir dann den bekannten Dialog zu zeigen, dass etwas Illegales passiert ist und dass es sinnvoller wäre abzubrechen und ganz neu zu starten, aber mehr nicht und nicht jede illegale Operation verursacht solche Exceptions. Sie können auch einfach Speicher überschreiben der dann erst später Probleme verursacht wenn LabVIEW versucht auf diesen Speicher zuzugreifen und die Information darin beispielsweise als Zeiger interpretieren will. Das kann scheinbar sogar gut gehen bis LabVIEW abgeschlossen wird und es beim Aufräumen im Speicher über irgendwann davor korrumpierte Speicherstellen stolpert.

Mögliche Ursachen dafür können sein:
1) Sehr beliebt: Ein Buffer der an die Funktion übergeben und in den die Funktion Informationen schreiben soll aber in LabVIEW nicht ausdrücklich auf die nötige Länge initialisiert wird. Jeder C Programmierer weiß dass das so nicht geht hat aber meist auch schon einen solchen Fehler produziert. In LabVIEW ist dieser Fehle extra leicht gemacht da ein LabVIEW Programmierer sich im Normalfall nicht darum kümmert ob ein String oder Array vor dem Aufruf einer Funktion groß genug ist um die erwartete Information empfangen zu können, da jede LabVIEW Funktion sich selber darum kümmert um solche Strings und Arrays dynamisch auf die richtige Größe zu resizen bevor sie etwas hineinschreibt. Das geht aber für C Funktionen nicht (oder nicht ohne sehr viele extra Komplikationen zu verursachen).

2) Falsche Call Library Node Konfiguration die nicht mit der Signatur der Funktion übereinstimmt.

3) Last but not least: Ein Programmierfehler in der DLL, Und nein auch wenn die DLL in einem C Programm zu funktionieren scheint braucht das noch nicht auszuschließen dass ein solcher Fehler besteht. Die DLL könnte in einem kleinen Programm schlichtweg keine lebenswichtigen Daten zerstören, da das Memorylayout ganz anders aussieht oder das C Programm bemüht sich gar nicht am Ende alles sauber aufzuräumen und verlässt sich auf das Betriebssystem dass alle allozierten Speicherbereiche wieder freigegeben werden. Das ist bei Programmende im Prinzip zulässig aber nicht ganz sauber.

Rolf Kalbermatter
Test & Measurements Solutions
http://www.tm-solutions.eu
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Absturz von LabView 2016 MarcoN 9 993 21.07.2020 09:15
Letzter Beitrag: MicroScoop
  Mehrfacher Absturz von LabView 2010 Sade 3 1.249 24.09.2018 14:46
Letzter Beitrag: GerdW
  Absturz bei Öffnen eines sub VI oe-ms1 7 2.141 19.03.2018 06:58
Letzter Beitrag: oe-ms1
  Absturz bei Start mit geöffnetem Frontpanel (Sub-VI) Manivi 2 1.647 20.03.2015 21:10
Letzter Beitrag: Manivi
  Unregelmäßiger Absturz beim Start des Programms blackrose1904 3 3.280 17.10.2014 08:52
Letzter Beitrag: GerdW
  Absturz beim Aufruf eines SubVIs TSC 18 6.594 07.06.2013 08:36
Letzter Beitrag: TSC

Gehe zu: