|
|
Dateioperation im Thread scheitert [S-Function C++ Simulink] |
|
Achim_G |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 12.09.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.09.2022, 11:23
Titel: Dateioperation im Thread scheitert [S-Function C++ Simulink]
|
|
|
|
|
Hallo!
Bei mir ist folgendes Problem aufgetreten:
Ich habe eine Funktion, die einen Text ausgeben soll. Allerdings soll der Thread die Textausgabe übernehmen. Ich habe bereits Berechnungen in Threads ausgelagert, so dass ich behaupte, dass es nicht an meinen Fähigkeiten liegt, einen Thread zu managen.
Ein Versuch sah so aus:
(in mdlStart)
(in eigener Datei)
Die Datei "file.txt" liegt im selben Ordner wie die mexw64, die slx und der Source Code. Das Ergebnis ist ein Absturz von Matlab und eine Fehlermeldung, dass eine Zugriffsverletzung vorliegt.
In der Folge habe ich etwas variiert, beispielsweise "file" in mdlStart geöffnet, einen Pointer an printToFile übergeben, dort "*file << "Test 123" << std::endl;" verwendet, den Thread gejoint und anschließend in mdlStart "file" wieder geschlossen. Das Ergebnis blieb gleich. Auch habe ich auch andere Methoden als mdlStart verwendet (u. a. mdlOutputs), aber das Ergebnis bleibt immer gleich.
Ich habe Matlab dann an Visual Studio angefügt. Es entsteht folgende Fehlermeldung:
Ausnahme ausgelöst bei 0x000000007061C028 (test01.mexw64) in MATLAB.exe: 0xC0000005: Zugriffsverletzung beim Ausführen an Position 0x000000007061C028.
Disassembly zeigt dabei auf die Line mit "nop", direkt hinter der schließenden Klammer der Funktion "printToFile":
(Das obige Disassembly bezieht sich auf eine Variante, bei der die Adresse von "file" übergeben wird und in printToFile lediglich die eine Line steht, die das Schreiben übernimmt.)
Matlab selbst schmeißt das Folgende aus, bevor es abschmiert:
Ich kann mir den Fehler nicht erklären und brauche eure Hilfe. Vielen Dank!
LG Achim
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|