Do not show artificial thread that is created by
DebugBreak() as it causes a switch to disassembly.
Forcibly discard the symbol group for each locals
update as the lazy creation mechanism does not trigger
on thread changes back and forth involving assembly,
which causes the symbol group to become stale.
in stopped state. Add helper for executing calls
to ExtensionContext including recording of output in
OutputCallback. Extend symbol resolution to return addresses
as well since QApplication::widgetAt() is ambiguous and needs
to be called by address. Add 'widgetat' extension command
to return the widget.
- Move the 'current module' into the Node
- Split symbol group hierarchy into LocalsSymbolGroup
tied to frame/thread and a separate, scopeless
WatchesSymbolGroup
- Add infrastructure for removing symbols from a SymbolGroup,
doing the index bookkeeping.
- Add method to synchronize watches to WatchesSymbolGroup
(iname/name map).
- Introduce watches commands for adding and dumping.
- Extend locals command to get watches as well.
- Add a dummy 'ErrorSymbolGroupNode' to use in case
insertion fails.
- Ignore WOW64 breakpoints. Restructure code to examine stop reason
before notifications to be able handle special stop reasons
in a simpler way.
- Fix autodetection to look into %ProgramFiles% (x64) as well.
get away from argument stringlists. instead, use native shell command
lines which support quoting/splitting, environment variable expansion
and redirections with well-understood semantics.
Task-number: QTCREATORBUG-542
Task-number: QTCREATORBUG-1564
Remove BreakHandler::hasPendingBreakpoints, handle new types
in CDB and gdb. Start fixing Breakpoint-Dialog.
Add assignment of Breakpointresponse from BreakpointParameters.
Reviewed-by: hjk
The breakpoints are now (fairly) tightly guarded by the BreakpointHandler.
Engines and Views are only supposed to refer to them by id. They also have
individual states now. The breakpoint data is split into a "user requested"
"fixed" part in BreakpointData and the engines' acknowledged data in a new
struct BreakpointResponse.
TODO: Move m_state and m_engine members to BreakpointResponse. Fix regressions
in the marker handling.
Ensure that at most one instance of the CDBEngine is alive.
Prevent inconsistent debugger states if several sessions are started.
Squashed cherry-picked commits from master correcting the
plugin state handling (2efdeb5cd0,
57f7616286).
Reviewed-by: hjk
Task-number: QTCREATORBUG-2894
(cherry picked from commit 5a5ba58dc9)
setError() on them instead (should there be any from
a session mixup). Give the session engine watcher
capabilities and ensure 'Remove watch item' is enabled
for the session engine by checking the debugger state.
Reviewed-by: hjk
assignValueInDebugger: Pass on WatchData as well, pass
on values as QVariant. Based on that, do more extensive
checks in CDB, preventing assignment of non-PODs.
Locals/Watch editing:
* Disable while running
* Edit pointer values as hex with validation.
CDB: Strip class types off reported pointer values and reformat
the values as short 0x-pointer values, introduce flag to
WatchData::source to do dumper expansion handling.
Windows: recognize int64 as int.
Register handler: Fix accessing uninitialized value.
Make address a quint64. Enable DisassemblerViewAgent
to match the disassembly-addresses by converting the numbers,
making it more robust. Remove the complicated formatting needed
for CDB.