Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
Qt Creator 4.1.0-beta1
-
None
Description
Using the combined QML/JS and C++ debugger on android for a "hello world" QML application, I get the "continue" icon instead of the "interrupt" icon after starting the process. The process can easily be interrupted by pressing this button, and then it stays in the "continue" state. Pressing it again, continues the process and changes the icon to "interrupt" state.
When not interrupting the process, after 40s I get a message box stating that gdb hasn't processed a command for 40s, with the option to stop debugging or give gdb more time.
After uncommenting line 2545 in debuggerplugin.cpp, I get the following debug output from QtCreator, when just starting the application through the debugger:
PLUGIN SET STATE: "DebuggerNotReady" PLUGIN SET STATE: "EngineSetupRequested" PLUGIN SET STATE: "EngineSetupRequested" SOFT ASSERT: "d->remoteSetupState() == RemoteSetupNone || d->remoteSetupState() == RemoteSetupSucceeded" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 789 Debugger::Internal::GdbRemoteServerEngine(0x115c6268, name = "GdbEngine") remoteSetupState 1 SOFT ASSERT: "d->remoteSetupState() == RemoteSetupNone || d->remoteSetupState() == RemoteSetupSucceeded" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 789 Debugger::Internal::QmlCppEngine(0x13d400a8, name = "QmlCppEngine") remoteSetupState 1 PLUGIN SET STATE: "EngineSetupOk" PLUGIN SET STATE: "InferiorSetupRequested" SOFT ASSERT: "state() == EngineSetupOk" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 800 *** UNEXPECTED STATE TRANSITION: Debugger::Internal::QmlEngine(0x12849cc0, name = "QmlEngine") "State changed from EngineSetupRequested(1) to InferiorSetupRequested(4)" SOFT ASSERT: "state() == EngineSetupRequested || state() == EngineSetupFailed || state() == DebuggerFinished" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 893 Debugger::Internal::QmlCppEngine(0x13d400a8, name = "QmlCppEngine") "InferiorSetupRequested" SOFT ASSERT: "state() == EngineSetupRequested" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\gdb\remotegdbserveradapter.cpp, line 485 "InferiorSetupOk" SOFT ASSERT: "state() == EngineSetupRequested || state() == EngineSetupFailed || state() == DebuggerFinished" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 893 Debugger::Internal::GdbRemoteServerEngine(0x115c6268, name = "GdbEngine") "InferiorSetupOk" SOFT ASSERT: "state() == EngineSetupRequested || state() == EngineSetupFailed || state() == DebuggerFinished" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 893 Debugger::Internal::QmlEngine(0x12849cc0, name = "QmlEngine") "InferiorSetupOk" SOFT ASSERT: "state() == EngineSetupRequested" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 791 Debugger::Internal::QmlEngine(0x12849cc0, name = "QmlEngine") "InferiorSetupOk" *** UNEXPECTED STATE TRANSITION: Debugger::Internal::QmlEngine(0x12849cc0, name = "QmlEngine") "State changed from InferiorSetupOk(6) to EngineSetupOk(3)" PLUGIN SET STATE: "InferiorSetupOk" PLUGIN SET STATE: "EngineRunRequested" SOFT ASSERT: "state() == InferiorSetupOk" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 838 *** UNEXPECTED STATE TRANSITION: Debugger::Internal::QmlEngine(0x12849cc0, name = "QmlEngine") "State changed from EngineSetupOk(3) to EngineRunRequested(7)" PLUGIN SET STATE: "InferiorStopOk" PLUGIN SET STATE: "InferiorRunRequested" SOFT ASSERT: "state() == InferiorRunOk" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\debuggerengine.cpp, line 1009 Debugger::Internal::GdbRemoteServerEngine(0x115c6268, name = "GdbEngine") "InferiorRunRequested" *** UNEXPECTED STATE TRANSITION: Debugger::Internal::GdbRemoteServerEngine(0x115c6268, name = "GdbEngine") "State changed from InferiorRunRequested(10) to InferiorStopOk(14)" PLUGIN SET STATE: "InferiorRunFailed" PLUGIN SET STATE: "InferiorStopOk" UNEXPECTED STATE: 14 WANTED: 10 IN D:\qtcreator-super\qtcreator\src\plugins\debugger\gdb\gdbengine.cpp:1740 *** UNEXPECTED STATE TRANSITION: Debugger::Internal::GdbRemoteServerEngine(0x115c6268, name = "GdbEngine") "State changed from InferiorStopOk(14) to InferiorRunOk(11)" SOFT ASSERT: "false" in file D:\qtcreator-super\qtcreator\src\plugins\debugger\qml\qmlcppengine.cpp, line 559 "InferiorStopOk"
I cannot make sense of all the InferiorStopOk transitions, as the process doesn't get stopped there. Also, I don't understand which state transitions are supposed to be allowed and which ones are supposed to be forbidden and for what reasons.