Pithon exit code -1073740771 (0xC000041D)
Вводные: Win 10 64bit, Python 3.9, PyQt5, Gui.
Программа завершается с exit code -1073740771 (0xC000041D)
В трассировке никаких ошибок не выводится. Можно ли как то выловить это исключение с помощью try-except?
Из наблюдений: приблизительный фрагмент кода, в котором сидит проблема, выявил. Но он выполняется без ошибок. В режиме отладки построчно выполнял код и после проблемного участка он тоже нормально выполняется. Но когда все строки кода в проблемной функции выполнены - скидывает на exit(App.exec())
Дополнение от 29.03.2023: заметил что вылет происходит после смены иерархии/родителей QGraphicsPixmapItem
. Но не в момент смены, а по завершении любой из функций, в которой происходит эта смена иерархии. Так как код после переназначения родителя выполняется до конца функции.
Дополнение от 10.04.2023:
В windows данный код говорит STATUS_ACCESS_VIOLATION, что означает The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
В моем случае.
Проще говоря - проблемы с обращением к ячейкам памяти. Допускаю, что они связаны со сборщиком мусора, но вероятнее всего с удалением объектов, являющихся родительскими по отношению к другим.
В коде есть функция, удаляющая итемы из сцены, при их удалении удаляются соответственно и их дочерние итемы. Предполагаю, что PyQt5 по каким то причинам не выводит ошибку в отладчик, когда удаляется итем уничтоженный ранее вместе с родителем. И прога падает.
То есть невозможно обращение к адресу памяти, который уже не существует.
Надеюсь, осталось понять каким образом определить какие итемы в сцене присутствуют (были добавлены методом additem
).