This is an attempt to make it work with released gdb 7.0. It uses some
ugly workarounds to compensate for the missing gdb.Block and gdb.Symbol
structures.
this ensures that, among other things, we won't get into this scenario:
- process is running
- interrupt is requested by user
- termination is requested by user
- before interrupt takes effect, the process terminates
=> shutdown is called
=> exit is also queued, as there is already a queued kill
=> nothing happens, as there will never be a stop response
Reviewed-by: hjk
archer reports stops at tbreaks properly, so checking for an empty stop
reason is no particularly good idea. instead, we simply skip *all* stops
at the entry point, assuming the user will not really set a breakpoint
there anyway.
Reviewed-by: hjk
any output will most definitely belong to later issued commands, so not
clearing it will only cost cpu or even confuse the evaluation.
Reviewed-by: hjk
The real problems is somewhere in the watch model. This patch does
only prevent the wrong (and unneeded) questions to be asked in the first
place. It does not fix the wrong handling of the answer in the watch model.
Reviewed-by: Oswald Buddenhagen
sometimes, commands simply don't return ...
the debug message doesn't say anything which couldn't be found in the
log already, but that way it is more convenient.
and we kill gdb to get creator back to a defined state.
Reviewed-by: hjk
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>
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