- Do not reformat boolean values (true,false) as hex/oct.
- char/unsigned char types (cdb/gdb): Chop off the quoted
printable character output by the debugger, pass around integer
only and append the character ourselves in the watchhandler,
making reformatting as hex/octal work.
- cdb: Check format correctly (fix values output as plain integer).
- cdb: Kill needless warning produced by reformatting output of out-of-scope
variables.
- cdb: Display exceptions in the status bar as non-intrusive crash notification.
Reviewed-by: hjk
The timer for event-delivery time-out checking when attaching to a
crashed process in the case of not being spawned by the handler
(such as via single-application remote command) triggered too
early. Add a 'moduleLoaded()' signal to CoreEngine and trigger
from there (due to lack of a proper "engine up/attached"
notification.
Emit moduleLoaded() from the first timed-out debug event handler when
modules no longer change.
Reviewed-by: Robert Loehning <robert.loehning@nokia.com>
Fixing various problems with breakpoints and opened files caused by CDB
returning lower-case file names.
Task-number: QTCREATORBUG-438
Reviewed-by: hjk <qtc-committer@nokia.com>
Acked-by: mariusSO <qt-info@nokia.com>
Make it possible to trigger a debug-attach in a running instance
of Qt Creator by means of -client, use that in qtcdebugger, thus
enabling it to attaching to crashing executables in run mode
(Windows/CDB).
Modify IPlugin and application so that the complete command line is
serialized and transmitted to a running instance via QtSingleApplication
if -client is specified. Introduce IPlugin::remoteArgument and use that
in core for opening files and in the debugger for attaching.
Use -client in qtcdebugger with some logic to keep it alive as long as
the debuggee, make CDB break in that case as the events are not replayed
correctly in case the debugger is not spawned by the registered handler.
Rubber-stamped-by: con <qtc-committer@nokia.com>
Use debugger's 'gu' command instead of temporary breakpoint as a
workaround until it is properly supported by the
SetExecutionStatus() API.
Reviewed-by: hjk
Task-number: QTCREATORBUG-240
this includes:
- move the gdb ownership back to the engine (thus strip down the
adaptors as far as possible)
- make gdb startup synchronous
- make adapter shutdown synchronous
- fix the state transitions relating to shutdown
- Turn off initial breakpoint when attaching (terminal) and
additionally ignore it before the first startup complete
- Refuse to step the artifical thread created when
interrupting
- If possible, switch to thread 0 when interupting (do not
use artificial thread)
- Ignore non-fatal exceptions in dumper calls (stray Startup-
complete-traps)
- Use right thread for dumper call loading
- Rename windows exception code enumeration
- Turn off modification off watch-data children by setType,
show empty lists correctly.
- Verbose warnings about inserting invalid watch data.
Use new call syntax of 6.11. for dumper call loading. Execute
Dumpers in a single thread (current) if at all possible (not
in some WaitFor or artificial break thread). Show one more
frame in threads view if it is FastCallReturn. Fix step into
(ignore one event), log some more exceptions. Generally log
exceptions to the debugger windows to be able to see stuff
like DLL missing, etc.
Simplify & Generalize stepping code, introduce stubs for reverse
debugging. When user switches to another thread than the
event-triggering one in a stopped inferior, explicitly tell
the engine to continue that one.
Improve fixDumperResult to fix missing types (out of scope items)
and call it from expandPointerDumpable.
Remove unused exec functions, replace by calls to the respective
stepExec/nextExec, which sets the code level automagically
according to the OperateByInstruction action.