"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.
When trying to debug qmake or another bootstrapped application loading the
dumpers failed as they are binarily incompatible. So failing is expected and
fine. However, gdb 6.8-debian produces in this case _two_ responses for
'-exec-continue produces' ('^running' and '^error,msg="Cannot find new threads:
generic error"') which is impossible according to the MI docs. In theory...
There used to be a single 'Locals' etc item of the true root that was
never shown anyway. Removing this also renders using setRootIndex()
in WatchWindow unnecessary.
- Modified WatchModel to handle storage of an hierarchy
of WatchItems.
- Factored out code for asynchronous population to
AsyncWatchModel and added a mixin for convenient
handling
- Added base class for synchronous models.
- Implement simple, synchronous models for CDB, greatly
simplifying code and finally getting manual
expansion right.
Signed-off-by: hjk <qtc-committer@nokia.com>
- std::set/map: Introduce templates to iterate the MSVC STL
implementation depending on type (since it inherits some
basic set_traits that depend on the key/value size.
- Retrieve types correctly in CDB (buffer too short for STL-types)
- Fix std::map in GDB broken by previous commit.
- Introduce a dumper version check in GDB/CDB.
- Make GDB parse sizes in initial dumper call as well
- Fix special sizes to work with namespaced Qt (watchutils)
- Make container dumper routines set "childnumchild" when known
in order to avoid roundtrips; avoid repeated invocations of
container.end().
- Completed dumper information in some places to avoid roundtrips.
- Extended QVariant helpers by dumpers for common GUI types
(rectangles, points, sizes, fonts, size policies).
- Introduced artificial QObjectChildList/QObjectProperty types to
be able to dump QObject children and properties without using
gdb expressions.
- Fixed dumping of Signal/Slot list to pass on correct types. Avoid
recursions if signal is connected to self.
- Replaced expressions by addresses in the dumpers to it make work
for CDB.
- Reworked dumper test program to have -a, making it usable for tests,
add further types.
- Gdb: Clear output buffer before calling dumpers, avoiding mixups
in case evaluation of expression fails.
- Fix the dumper parser used by CDB, do not be fooled by
"<synthetic>" addresses, etc.
- Pass on a "dumperVersion" in initial query.
The problem was that the 'emptyness' of m_cookieForToken was used as an
indication that there was no response packet still in the air. However,
this hash was not reset after a debugging session was aborted using S-F5,
so it could contain items from a previous run, effectively preventing
automatic triggering of the necessary 'continue'.
- clear up some Q_OS_LINUX vs. Q_OS_UNIX
- clear up Q_WS_* vs. Q_OS_* (relatively theoretical exercise)
- use proper #if-#else cascades instead of free-standing #ifs