You might be able to get a stacktrace using the "faulthandler" module (standard in Python 3, needs to be installed from PyPI for Python 2).
Am 09.11.18 um 07:53 schrieb Alex Blasche: > Hi Romain, > > please file a bugreport under bugreports.qt.io in the Pyside project. The > content for the bug report you already have in your mail. If you happen to > have a stack trace, that would be beneficial too. > > Alex > > ________________________________________ > From: PySide <[email protected]> on > behalf of Romain LE DISEZ <[email protected]> > Sent: Thursday, 8 November 2018 9:30:53 PM > To: [email protected] > Subject: [PySide] Segfault using QScxmlStateMachine.submitEvent(QScxmlEvent) > > Hi all, > > I'm very new to Qt as I'm developing my first application with it. I'm trying > to use StateChart based on QScxmlStateMachine. > > It works fine except in a situation where I get a segfault. If, in the demo > code below, you comment the line submitEvent('MY_EVENT') and uncomment the > usage of a ScxmlEvent, the event is dispatched then the application > segfaults. Output is: > StateMachine::active: True > ('MY_EVENT:', (), {}) > Segmentation fault: 11 > > Am I doing something wrong or is it a bug? How can I provide you useful > informations in the latter case. I'm running PySide2 (v5.11.2) on macOS (High > Sierra) with Python v2.7.15 (coming from brew). > > Thx for your help. > > > demo.scxml: > <?xml version="1.0" encoding="UTF-8"?> > <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" > binding="early" name="demo.scxml"> > <transition type="internal" event="MY_EVENT"/> > <state id="StateMachine"/> > </scxml> > > demo.py: > #!/usr/bin/env python > > import sys > > from PySide2.QtCore import QObject, QCoreApplication, SLOT, Slot > from PySide2.QtScxml import QScxmlStateMachine, QScxmlEvent > > > class Backend(QObject): > def __init__(self, machine): > super(Backend, self).__init__() > self.machine = machine > self.machine.connectToState('StateMachine', self, > SLOT('state_machine_active(bool)')) > self.machine.connectToEvent('MY_EVENT', self, SLOT('my_event()')) > > @Slot(bool) > def state_machine_active(self, active): > print('StateMachine::active: %s' % active) > self.machine.submitEvent('MY_EVENT') > #ev = QScxmlEvent() > #ev.setName('MY_EVENT') > #ev.setEventType(QScxmlEvent.ExternalEvent) > #self.machine.submitEvent(ev) > > @Slot() > def my_event(self, *args, **kwargs): > print('MY_EVENT:', args, kwargs) > > > if __name__ == '__main__': > app = QCoreApplication(sys.argv) > > machine = QScxmlStateMachine.fromFile('demo.scxml') > b = Backend(machine) > machine.start() > > sys.exit(app.exec_()) > > -- > Romain > > _______________________________________________ > PySide mailing list > [email protected] > http://lists.qt-project.org/mailman/listinfo/pyside > _______________________________________________ > PySide mailing list > [email protected] > http://lists.qt-project.org/mailman/listinfo/pyside > _______________________________________________ PySide mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/pyside
