DAbort 0xf50efd7b actor framework

Модель программирования Actor Framework
Ответить
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

DAbort 0xf50efd7b actor framework

Сообщение Juri »

Похоже у меня аналогичная проблема как и тут https://forums.ni.com/t5/Actor-Framewor ... -p/3471461
Только я не понял как он "traced the issue down to one VI". У меня лабвью стал крашиться после того как я внес какие-то обновления в свой родительский актор. Причем иногда программа работает нормально, иногда LV крашится сразу при запуске, иногда при закрытии.
Воспользовался Trace toolkit https://dropmefiles.com/DAQa0, но как там понять где проблема не знаю.
Вложения
Screenshot_3.png
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Re: DAbort 0xf50efd7b actor framework

Сообщение Juri »

Лабвью не крашится по крайней мере после первого прогона программы. Как можно закрыть клоны, которые остаются в памяти после завершения программы?

upd: выяснил, что по крайней мере чтобы не было краша достаточно сделать любое изменение в коде root актора. Тогда видимо старый клон уничтожается и больше не запускается
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: DAbort 0xf50efd7b actor framework

Сообщение Artem.spb »

Juri писал(а): 21 сен 2022, 14:23 Лабвью не крашится по крайней мере после первого прогона программы. Как можно закрыть клоны, которые остаются в памяти после завершения программы?
После корректного или некорректного завершения?
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Re: DAbort 0xf50efd7b actor framework

Сообщение Juri »

Корректного
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: DAbort 0xf50efd7b actor framework

Сообщение Artem.spb »

Какое же оно корректное, если клоны остались? :)
Если клоны - это Nested акторы, то Root их должен оповестить. А если они сами по себе, так это ваша задача спроектировать софт так, что всё закрывалось.
У вас с ними никакой связи нет? Как и из-под чего запуск происходит?
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Re: DAbort 0xf50efd7b actor framework

Сообщение Juri »

Я считаю, что если программа закрылась, и при этом классы не заблокированы в проекте и доступны для редактирования, и при этом при закрытии проекта не появляется сообщение о каких-то работающих vi, то это значит программа закрылась корректно. Этих условий не достаточно?
По факту по всей видимости Labview оставляет эти клоны "прозапас" не понятно до какого момента и использует повторно. Скажу даже больше. Если запустить labview execution trace toolkit, запустить и закрыть программу, передвинуть какой-нибудь индиктор в оригинале а потом щелкнуть по какой-нибудь строке в тулките, то откроется старый клон окна программы с непередвинутым индикатором. Это говорит о том, что старый клон не уничтожается даже после того как я внес изменение в оригинал. Или может быть это trace toolkit его хранит как-то у себя? Кроме того если запустить и закрыть программу несколько раз подряд, то при каждом новом запуске индикаторы сохраняют свое конечное состояние оставшееся при предыдущем прогоне. По крайней мере так работает у меня.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: DAbort 0xf50efd7b actor framework

Сообщение Artem.spb »

Не разу не встречал заблокированных классов при корректном завершении. Вот при некорректном -сколько угодно.
Акторы - такая штука, способная скрыто запуститься, и если всё приложение как-то завершилось, не факт, что они все тоже завершились.
Проверяется просто - закройте проект. Если система предупреждает, что что-то придётся завершить, то у вас явно недоработка в коде.

Закрыть программу, но не проект - нормально (на мой взгляд), что она не выгружается из памяти, соответственно, и состояния индикаторов сохраняются.

Кстати, по поводу редактирования, иногда помогает ctrl+M (переход из/в редактирования). В основном я как раз на клонах, открытых во время теста программы, использую. Может, вам тоже поможет. Но, естественно, только если все акторы, действительно, завершены.
Ответить

Вернуться в «Actor Framework»