get away from argument stringlists. instead, use native shell command
lines which support quoting/splitting, environment variable expansion
and redirections with well-understood semantics.
Task-number: QTCREATORBUG-542
Task-number: QTCREATORBUG-1564
The breakpoints are now (fairly) tightly guarded by the BreakpointHandler.
Engines and Views are only supposed to refer to them by id. They also have
individual states now. The breakpoint data is split into a "user requested"
"fixed" part in BreakpointData and the engines' acknowledged data in a new
struct BreakpointResponse.
TODO: Move m_state and m_engine members to BreakpointResponse. Fix regressions
in the marker handling.
Check whether the ports we need are actually available on the device.
As a side effect, this makes it possible to debug more than one
application at the same time on Maemo.
Task-number: QTCREATORBUG-2702
As it is not able to do the event-handshake required.
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Task-number: QTCREATORBUG-2086
Check for valid runcontrols in various places and initialize
m_engine correcly. In the case of QML-Debugging, handle
NoEngineType.
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Task-number: QTCREATORBUG-2086
Make DebuggerRunner handle QProcess::startFailed
correctly on Windows (synchronous signal emission
within startDebugger()).
Remove debug output/warnings.
Reviewed-by: hjk
Moved qmljsdebugger to a dir under qml/, made qmlobserver compile
without creator dependencies and made it compile with debugging
helpers.
Reviewed-by: hjk
* Handle environment variables in workdir, executable name as
well as arguments when starting an application
* Cover both debugger and normal application starts
Don't force users to inherit from QDeclarativeDesignView. Instead we're
using now event filters to let a user attach a QDeclarativeViewObserver
object to a QDeclarativeDesignView.
Without doing some magic for the filenames, we go to shadow build files
instead of the real ones, resulting in confusion. The user should never
see the shadow build files while debugging.
Reviewed-by: hjk
A new debugger engine, QmlCppEngine, is introduced, which wraps gdb
and qml engines into one. Alternatively, if using Windows, Cdb is used
instead of Gdb.
Most of the debugger ui switcher is now rewritten, and it is tailored
for the QML and CPP layout case, the only one supported anyway.
Reviewed-by: hjk
Make sure DebuggerRunner::finished() is always connected to
handleFinished() (even for subclassed DebuggerRunners). Add
some more debugging information.
...which subclasses DebuggerRunner and does not call
DebuggerPlugin::startDebugger(), which connects the
engine, leading to strange malfunctions. Move functionality
to DebuggerRunner::start() to make it self-contained.
Add object names to engines for easier debugging.
Reviewed-by: hjk
Fix breakage introduced by the new asynchronous stop() methods
of the debugger run controls. Allow for RunControl::stop() to
be asynchronous by introducing a return enumeration indicating
that. Introduce additional method aboutToStop() asking user
to quit (tie that to the RunControl instead of having to hack
the behaviour elsewhere).
If asynchronous stop is detected, terminate the ProjectExplorer
asynchronously.
This makes the behaviour consistent across switching sessions/
closing outputwindow tabs and quitting Qt Creator.
Reviewed-by: dt
Rubber-stamped-by: hjk
Now, QmlEngine creates the connection to the inferior (debuggee), and
notifies QmlInspector when a connection is established. Before,
inspector created the debugger engin, which was wrong.
QmlEngine's responsibilities are connecting to the debuggee and basic
QML/JS debugging features like locals & watchers, breakpoints etc.
QmlInspector takes care of Live Preview and other fancy inspection
features.
Reviewed-by: hjk