elelel / qluacpp-tutorial

Tutorial for Qluacpp library (C++ interface for Quik trading terminal)
28 stars 13 forks source link

LuaVM closed with error #3

Closed QApplication closed 7 years ago

QApplication commented 7 years ago

После выполнения кода "basic tutorial" QUIK выводить сообщение с ошибкой "LuaVM closed with error".

elelel commented 7 years ago

Скомпилировал сейчас и проверил на 7.14.1.7 - все работает нормально.

QApplication commented 7 years ago

На просторах интернета нашел возможную причину ошибки закрытия VM lua. Функции lua_close() должна вызываться в том же потоке, в котором выполняет main(). На первый взгляд я не нашел указанной конструкции в исходниках. Также пробовал запускать скрипт на последней версии (7,14,1,7) - ошибка не пропадает.

elelel commented 7 years ago

lua_close() вызывается по мере надобности самим Quik, не мы создаем state и не мы закрываем. Ошибка возникает не сразу после старта скрипта?

Если вы скажете как эту ошибку воспроизвести мне, мне было бы легче ее найти.

QApplication commented 7 years ago

когда завершается callback main - приходит error message LuaVM closed with error. Если main крутится в бесконечном цикле, то ошибки не появляется. При принулительной остановке скрипта lua также приходит аналогичное сообщение.

elelel commented 7 years ago

Где-то портится state, попробуйте коментить куски кода плагина, которые могут его модифироцовать и перекомпилировать без них, потом пускать, проверяя, исчезает ли ошибка при закрытии. У меня эта ошибка не воспроизводится.

elelel commented 7 years ago

not reproducible

QApplication commented 6 years ago

Выянил причину по ошибке виртуальной машины lua. Exception thrown at 0x77B8F2E1 (ntdll.dll) in info.exe: 0xC0000005: Access violation reading location 0x04376577 Однако не понял как ее усранить. Подкините идеи?

elelel commented 6 years ago

Смотрите backtrace. Или ищите в изменениях, которые сделали к basic tutorial, в том виде, в котором он сейчас в репозитарии, ошибка не воспроизводится.