Commit Graph

27 Commits

Author SHA1 Message Date
Lasse Holmstedt
b557c58eac Qml Debugger: Enable debugging qml+cpp standalone applications
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
2010-08-24 17:46:22 +02:00
Lasse Holmstedt
b71c3c62ba QML Debugger refactoring
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
2010-08-13 14:20:39 +02:00
Olivier Goffart
d75239aeab QML Debugger: fix the fact that the qmlobserver would only run once. 2010-08-10 14:42:53 +02:00
Olivier Goffart
9df9695a7f debugger: get rid of the private header dependency
Removed the CanvasFrameRate class as it is not used, and
depends on private Qt API
2010-08-10 10:10:39 +02:00
Olivier Goffart
87c7ca5c9c remove dead code 2010-08-06 16:06:01 +02:00
Olivier Goffart
6d9209b88f QML Debugger: Get rid of all the useless commented code 2010-08-04 17:21:26 +02:00
Olivier Goffart
f3cdbeff63 QmlJsInspector: remove private header dependencies
A copy of the client debugging code is made in src/libs/qmljsdebugclient/
(this comes from the qt code from commit 65642dd343bf61)

So the qmljsinspector plugin does not require anymore Qt private headers.
2010-07-29 14:36:11 +02:00
Olivier Goffart
70f3f5d029 QML JS Debugger: Asynchronous call to watchHandler()->endCycle()
All the expended item need to be retreived before we can call endCycle
2010-07-23 11:48:47 +02:00
Olivier Goffart
bdb2e751e0 remove some qDebug() 2010-07-22 15:35:27 +02:00
Olivier Goffart
050905157c QML JS Debugger: Be able to expand objects 2010-07-22 15:23:36 +02:00
Olivier Goffart
bfa609e336 QML JS Debugger: Better way to stream watch data
QVariant does not work as they can contain custom type that corrypt the stream
2010-07-22 13:18:04 +02:00
Olivier Goffart
ac73d0a9eb debugger: Remove or comment out code that is not being used.
Will help to clean up later.
2010-07-16 12:17:13 +02:00
Olivier Goffart
0931948c01 QML JS debugging: premilary support of locals
Unfortunatelly, streaming QVariant is not a really good idea, as streaming
a custom type would fail
2010-07-16 12:02:47 +02:00
hjk
887e21da56 debugger: more state work 2010-07-14 17:49:17 +02:00
hjk
e760700f0f debugger: overhaul "state machine"
This mainly allows for more precise shutdown and tightens the set
of allowed transitions.
2010-07-14 17:49:16 +02:00
hjk
9e7a456457 debugger: refactor startup logic 2010-07-14 17:49:16 +02:00
Olivier Goffart
896e898369 debugger: comment out the code that runs the qmlviewer from QMLEngine
the qmlviewer is currently started from the qmljsinspector.
But this might change in the future
2010-07-08 17:27:23 +02:00
hjk
f8d96f09a6 debugger: rename startDebugger() to startEngine() 2010-07-08 13:48:09 +02:00
hjk
de59fe3f2d debugger: work on the qmlengine 2010-07-05 17:08:55 +02:00
hjk
f9edf59c21 debugger: remove some unused code in the qmlengine 2010-07-05 17:08:55 +02:00
hjk
77cf419d77 debugger: make qml debugger start talking to qmlviewer 2010-07-02 11:18:34 +02:00
hjk
e2159536b0 debugger: incorporate ogoffart's first shot at qml debugging 2010-06-25 14:09:35 +02:00
hjk
6a6cba5518 debugger: The DebuggerEngine refactoring.
This replaces the (de facto) singleton engines and data handlers by classes
that are instantiated per run. The DebuggerRunControl will now create an
object of (a class derived from) DebuggerEngine that contains all the relevant
"dynamic" data.

DebuggerManager is no more. The "singleton" bits are merged into DebuggerPlugin,
whereas the data bits went to DebuggerEngine.

There is no formal notion of a "current" DebuggerEngine. However, as there's
only one DebuggerEngine at a time that has its data models connected to the
view, there's still some "de facto" notion of a "current" engine. Calling
SomeModel::setData(int role, QVariant data) with custom role is used as the
primary dispatch mechanism from the views to the "current" data models
(and the engine, as all data models know their engine).
2010-06-22 10:59:57 +02:00
hjk
b3aff6b919 debugger: more of the RunControl refactoring
Pass output through the RunControl instead of the DebuggerManager.
2010-06-14 17:24:13 +02:00
hjk
6ed9830971 debugger: move DebuggerRunControl *m_runControl into IDebuggerEngine.
Plan is to identify make identify an IDebuggerEngine incarnation with
a RunControl.
2010-06-14 17:24:13 +02:00
hjk
97edcb7977 debugger: start 'runcontrol-ification' of the debugger plugin.
This replaces most uses of DebuggerStartParameters by DebuggerRunControl
which is a simple RunControl with a DebuggerStartParameters member.

Plan is to move all global state to the run controls, and possibly
introduce specialized ones for core debugging etc.
2010-06-14 10:45:11 +02:00
hjk
17a2f6711e debugger: start second shot at Qml debugging 2010-06-10 14:45:31 +02:00