Commit Graph

31 Commits

Author SHA1 Message Date
hjk
9cbbeec6c1 debugger: move convienience function to DebuggerEngine base class 2010-07-21 14:28:29 +02:00
hjk
af57dc4170 debugger: re-enable setting breakpoints while inferior is running 2010-07-20 14:02:58 +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
6089bc1b9e debugger: rename EngineStart to EngineSetup 2010-07-14 17:49:16 +02:00
hjk
9e7a456457 debugger: refactor startup logic 2010-07-14 17:49:16 +02:00
hjk
405f340e2b debugger: streamline communication between GdbEngine and the adapters 2010-07-08 12:41:53 +02:00
hjk
2385e15b2d debugger: merge 'AdapterStarting' into 'EngineStarting' state 2010-07-08 12:41:53 +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
a4f412388d debugger: move m_inferiorPid from DebuggerManager to DebuggerRunControl 2010-06-15 12:51:18 +02:00
hjk
9f7e9dc0ae debugger: refactoring of output channeling 2010-06-14 18:22:09 +02:00
hjk
e65e011706 debugger: let the user specify a working directory when starting a local
application
2010-05-12 11:48:00 +02:00
Erik Verbruggen
e3bceff3ee Separated child-process stdout/stderr, and seperated "our" output/errors.
So now the "Applciation Output" can distinguish between these four, and
handle them appropriately.
2010-04-19 14:21:48 +02:00
hjk
7767436b07 debugger: don't force use of compiled debugging helpers in the terminal adapter 2010-04-07 10:47:48 +02:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Friedemann Kleint
8ddeaa5fa4 Console Debugger/Linux: Use LD_PRELOAD to load dumpers. 2010-02-16 12:29:26 +01:00
hjk
cdae30ccdb debugger: start splitting off python and non-python specific bits 2010-01-21 17:19:08 +01:00
hjk
e3712f9687 debugger: refactoring, use QByteArray instead of QString when appropriate 2010-01-05 18:13:24 +01:00
Oswald Buddenhagen
5fd1e3c454 properly decode messages from gdb
... using fromLocal8Bit instead of fromLatin1.
of course the localized messages pose a "challenge" for the various
workarounds which parse them ...

Task-number: QTCREATORBUG-504
2010-01-04 14:12:28 +01:00
Friedemann Kleint
ffca9bb5cc Debugger: Do not use LD_PRELOAD on Mac.
Fails for system Qt on 10.6.

Reviewed-By: hjk <qtc-committer@nokia.com>
2009-11-12 16:49:12 +01:00
Friedemann Kleint
a6d099a1ea Debugger: Fix LD_PRELOAD on Mac.
Reviewed-by: hjk <qtc-committer@nokia.com>
2009-11-03 16:02:16 +01:00
Friedemann Kleint
10e07e01c7 Debugger: Use LD_PRELOAD to load debugging helper.
on UNIX. Either set the LD_PRELOAD environment variable
using a gdb command or have the TermGdbAdapter set the
variable for the debuggee. For the remote adapter,
switch on toolchain. dlopen() is a fallback for
platforms where it is not supported and attaching
to running processes. Fixes a crash with gdb 7.0
(and spurious gdb 6.8 crashes with dlopen()).
Reviewed-by: hjk <qtc-committer@nokia.com>
2009-11-03 14:06:21 +01:00
Oswald Buddenhagen
151b785d01 terminal adapter: make skipping of initial SIGSTOPs more reliable
first, _start being resolvable depends on libc-dbg being installed.
second, depending on the frame being in the dynloader makes it
a) work only for dynamic executables and b) fail on multi-target
systems (due to a hard-coded file name).
so instead just remember the entry point, as we are already there
anyway.

Reviewed-By: hjk
2009-10-30 17:47:51 +01:00
Oswald Buddenhagen
9d20a2abb4 make attaching adapters more robust
to make the behavior consistent across gdb versions, ignore the initial
*stopped which gdb7 delivers while attaching.

Reviewed-By: hjk
2009-10-30 17:47:51 +01:00
Oswald Buddenhagen
ad3d1c5887 assert pid presence 2009-10-29 15:34:00 +01:00
Oswald Buddenhagen
954b2b1786 less noise 2009-10-29 15:34:00 +01:00
Oswald Buddenhagen
3a84440e91 clean up includes 2009-10-20 18:16:25 +02:00
Oswald Buddenhagen
c936e29931 remove useless methods (base class has identical implementations) 2009-10-20 18:16:25 +02:00
Oswald Buddenhagen
a4760b716e centralize message box handling in adapters 2009-10-20 18:16:25 +02:00
Oswald Buddenhagen
b2ae433a58 centralize exec-continue calling and error handling 2009-10-20 14:08:59 +02:00
Oswald Buddenhagen
ad092d11d5 re-add debug-in-terminal in form of a new gdb adapter 2009-10-20 11:26:55 +02:00