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.
Adapt to new state model, make sure session is always cleaned
when invoked from processExited event handler, remove calls
to DebuggerManager::notifyXX().
- Watchwindow: Do not open Address dialog if menu is canceled (act = 0
matching the unitialized unknown memory action)
- Actually pass the address of the dialog to the agent
- Make the "Open Memory editor..." action always visible to be able to
look at const char *x pointing at y
- Improve the address dialog with checking and dialog button box
- Explicitly pass the quint64 around
- Translate & purge
"Stepping instruction wise" and "display disassembler" mode is now toggled by a
single action. This also allows to re-use F10 and F11 as keyboard shortcut.
Missing: caching of disassembler output, removal of old disassembler view.