• hjk's avatar
    Debugger: Make dumpers somewhat work in command line GDB · fffbf947
    hjk authored
    With
    
        python sys.path.insert(1, '/data/dev/creator/share/qtcreator/debugger/')
        python from gdbbridge import *
    
    in .gdbinit there's 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 =
       [
          <Myns::QGuiApplication> = {"Hello"}
          staticMetaObject = <Myns::QMetaObject> = {""}
          [parent] = <Myns::QObject *> = {"0x0"}
          [children] = <Myns::QObjectList> = {"<3 items>"}
          [properties] = "<>0 items>"
          [methods] = "<6 items>"
          [signals] = "<1 items>"
       ],<Myns::QApplication> = {"Hello"}
    
    (gdb) pp app [properties],[children]
    app =
       [
          <Myns::QGuiApplication> = {"Hello"}
          staticMetaObject = <Myns::QMetaObject> = {""}
          [parent] = <Myns::QObject *> = {"0x0"}
          [children] = [
             <Myns::QObject> = {""}
             <Myns::QObject> = {""}
             <Myns::QObject> = {"fusion"}
          ],<Myns::QObjectList> = {"<3 items>"}
          [properties] = [
             windowIcon = <Myns::QVariant (QIcon)> = {""}
             cursorFlashTime = <Myns::QVariant (int)> = {"1000"}
             doubleClickInterval = <Myns::QVariant (int)> = {"400"}
             keyboardInputInterval = <Myns::QVariant (int)> = {"400"}
             wheelScrollLines = <Myns::QVariant (int)> = {"3"}
             globalStrut = <Myns::QVariant (QSize)> = {"(0, 0)"}
             startDragTime = <Myns::QVariant (int)> = {"500"}
             startDragDistance = <Myns::QVariant (int)> = {"10"}
             styleSheet = <Myns::QVariant (QString)> = {""}
             autoSipEnabled = <Myns::QVariant (bool)> = {"true"}
          ],"<10 items>"
          [methods] = "<6 items>"
          [signals] = "<1 items>"
       ],<Myns::QApplication> = {"Hello"}
    
    (gdb) pp ss
    ss =
       <Myns::QString> = {"Hello"}
    
    Change-Id: I6e4714a5cfe34c38917500d114ad9a70d20cff39
    Reviewed-by: default avatarChristian Stenger <christian.stenger@digia.com>
    Reviewed-by: default avatarhjk <hjk121@nokiamail.com>
    fffbf947
gdbbridge.py 61.8 KB