Debugger: Have Python dumper print type size information.

For memory views. In the dumper, create a cache of TypeInfo
structs to contain type information and print the new entries
in each call of bb().

Collect the information in the gdb engine.
Replace WatchData::origAddress by WatchData::ReferencingAddress
to be able to correctly handle automatically dereferenced
pointers of the gdb engine. Whereas 'address' of a automatically
dereferenced used to be that of the pointer, it is now that
of the dereferenced item matching the size reported, enabling
memory views. Referencing address is now the address of the pointer.

Reviewed-by: hjk
This commit is contained in:
Friedemann Kleint
2011-04-12 15:56:03 +02:00
parent fc2e7263d5
commit 67d391019b
9 changed files with 79 additions and 33 deletions

View File

@@ -113,7 +113,7 @@ public:
quint64 coreAddress() const;
QByteArray hexAddress() const;
QByteArray hexOrigAddress() const;
QByteArray hexReferencingAddress() const;
public:
quint64 id; // Token for the engine for internal mapping
@@ -129,7 +129,7 @@ public:
QByteArray type; // Type for further processing
QString displayedType;// Displayed type (optional)
quint64 address; // Displayed address
quint64 origAddress; // Original address for dereferenced pointers
quint64 referencingAddress; // Address of the pointer referencing this item (gdb auto-deref)
uint size; // Size
uint bitpos; // Position within bit fields
uint bitsize; // Size in case of bit fields