forked from qt-creator/qt-creator
Triggers currently on any class called ProString, but should (a) be harmless, as the children are still available, and (b) can be disabled by changing the Local Display Format for ProString to 'Raw data' Change-Id: I59bfef50fb1b6c4aac44bf18bb1966851c19b7d0 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: hjk <hjk@theqtcompany.com>
While the primary intention of this pretty printing implementation is
to provide what Qt Creator needs, it can be used in a plain commandline
GDB session, too.
With
python sys.path.insert(1, '<path/to/qtcreator>/share/qtcreator/debugger/')
python from gdbbridge import *
in .gdbinit there is a new "GDB command", called "pp".
With code like
int main(int argc, char *argv[])
{
QString ss = "Hello";
QApplication app(argc, argv);
app.setObjectName(ss);
// break here
}
the "pp" command can be used as follows:
(gdb) pp app
app =
[
<QGuiApplication> = {"Hello"}
staticMetaObject = <QMetaObject> = {""}
[parent] = <QObject *> = {"0x0"}
[children] = <QObjectList> = {"<3 items>"}
[properties] = "<>0 items>"
[methods] = "<6 items>"
[signals] = "<1 items>"
],<QApplication> = {"Hello"}
(gdb) pp app [properties],[children]
app =
[
<QGuiApplication> = {"Hello"}
staticMetaObject = <QMetaObject> = {""}
[parent] = <QObject *> = {"0x0"}
[children] = [
<QObject> = {""}
<QObject> = {""}
<QObject> = {"fusion"}
],<QObjectList> = {"<3 items>"}
[properties] = [
windowIcon = <QVariant (QIcon)> = {""}
cursorFlashTime = <QVariant (int)> = {"1000"}
doubleClickInterval = <QVariant (int)> = {"400"}
keyboardInputInterval = <QVariant (int)> = {"400"}
wheelScrollLines = <QVariant (int)> = {"3"}
globalStrut = <QVariant (QSize)> = {"(0, 0)"}
startDragTime = <QVariant (int)> = {"500"}
startDragDistance = <QVariant (int)> = {"10"}
styleSheet = <QVariant (QString)> = {""}
autoSipEnabled = <QVariant (bool)> = {"true"}
],"<10 items>"
[methods] = "<6 items>"
[signals] = "<1 items>"
],<QApplication> = {"Hello"}
(gdb) pp ss
ss =
<QString> = {"Hello"}