Qt4.natvis 在 Centos 7 上的 VSCode 中不起作用

问题描述

我正在使用 VSCode 通过 SSH 在 Centos 7 上使用 Qt4 进行开发。我的 launch.json 内容如下:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information,visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0","configurations": [
        {
            "name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/debug/program","args": ["--Verbose"],"stopAtEntry": true,"cwd": "${workspaceFolder}","environment": [],"MIMode": "gdb","setupCommands": [
                // {
                //     "description": "Enable pretty-printing for gdb",//     "text": "-enable-pretty-printing",//     "ignoreFailures": false
                // }
            ],"visualizerFile": "/root/Qt4.natvis","showdisplayString": true,"logging": {
                "engineLogging": true,"trace": true,"traceResponse": true
            }
        }
    ]
}

当鼠标悬停在名为 stmt 的 QString 上时,弹出窗口中会显示一些信息,例如字符串大小,但没有关于实际文本内容的信息。在监视窗口中也是如此。主要的可视化文本显示“-var-create:无法创建变量对象”

当我悬停时,gdb 会产生以下错误消息流。

“-var-create”错误和“可视化表达式需要显式刷新”错误有多个实例。

<--   C (evaluate-28): {"command":"evaluate","arguments":{"expression":"stmt","frameId":1000,"context":"hover"},"type":"request","seq":28}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (45371) <-1126-var-create - * \"stmt\"\n"},"seq":1556}
1: (45371) <-1126-var-create - * "stmt"
--> E (output): {"type":"event","output":"1: (45372) ->1126^done,name=\"var46\",numchild=\"2\",value=\"{...}\",type=\"QString\",thread-id=\"1\",has_more=\"0\"\n"},"seq":1558}
1: (45372) ->1126^done,name="var46",numchild="2",value="{...}",type="QString",thread-id="1",has_more="0"
--> E (output): {"type":"event","output":"1: (45373) ->(gdb)\n"},"seq":1560}
1: (45373) ->(gdb)
--> E (output): {"type":"event","output":"1: (45373) 1126: elapsed time 1\n"},"seq":1562}
1: (45373) 1126: elapsed time 1
--> E (output): {"type":"event","output":"1: (45373) <-1127-var-list-children --simple-values \"var46\" 0 1000\n"},"seq":1564}
1: (45373) <-1127-var-list-children --simple-values "var46" 0 1000
--> E (output): {"type":"event","output":"1: (45374) ->1127^done,children=[child={name=\"var46.public\",exp=\"public\",numchild=\"1\",value=\"\",thread-id=\"1\"},child={name=\"var46.private\",exp=\"private\",numchild=\"4\",thread-id=\"1\"}],"seq":1566}
1: (45374) ->1127^done,children=[child={name="var46.public",exp="public",numchild="1",value="",thread-id="1"},child={name="var46.private",exp="private",numchild="4",thread-id="1"}],"output":"1: (45374) ->(gdb)\n"},"seq":1568}
1: (45374) ->(gdb)
--> E (output): {"type":"event","output":"1: (45374) 1127: elapsed time 1\n"},"seq":1570}
1: (45374) 1127: elapsed time 1
--> E (output): {"type":"event","output":"1: (45375) <-1128-var-list-children --simple-values \"var46.public\" 0 1000\n"},"seq":1572}
1: (45375) <-1128-var-list-children --simple-values "var46.public" 0 1000
--> E (output): {"type":"event","output":"1: (45379) ->1128^done,children=[child={name=\"var46.public.null\",exp=\"null\",numchild=\"0\",type=\"const QString::Null\","seq":1574}
1: (45379) ->1128^done,children=[child={name="var46.public.null",exp="null",numchild="0",type="const QString::Null","output":"1: (45379) ->(gdb)\n"},"seq":1576}
1: (45379) ->(gdb)
--> E (output): {"type":"event","output":"1: (45379) 1128: elapsed time 4\n"},"seq":1578}
1: (45379) 1128: elapsed time 4
--> E (output): {"type":"event","output":"1: (45379) <-1129-var-list-children --simple-values \"var46.private\" 0 1000\n"},"seq":1580}
1: (45379) <-1129-var-list-children --simple-values "var46.private" 0 1000
--> E (output): {"type":"event","output":"1: (45381) ->1129^done,children=[child={name=\"var46.private.shared_null\",exp=\"shared_null\",type=\"QString::Data\",child={name=\"var46.private.shared_empty\",exp=\"shared_empty\",child={name=\"var46.private.d\",exp=\"d\",value=\"0x67a820\",type=\"QString::Data *\",child={name=\"var46.private.codecForCStrings\",exp=\"codecForCStrings\",value=\"0x0\",type=\"QTextCodec *\","seq":1582}
1: (45381) ->1129^done,children=[child={name="var46.private.shared_null",exp="shared_null",type="QString::Data",child={name="var46.private.shared_empty",exp="shared_empty",child={name="var46.private.d",exp="d",value="0x67a820",type="QString::Data *",child={name="var46.private.codecForCStrings",exp="codecForCStrings",value="0x0",type="QTextCodec *","output":"1: (45381) ->(gdb)\n"},"seq":1584}
1: (45381) ->(gdb)
--> E (output): {"type":"event","output":"1: (45381) 1129: elapsed time 2\n"},"seq":1586}
1: (45381) 1129: elapsed time 2
--> E (output): {"type":"event","output":"1: (45381) <-1130-var-create - * \"(const char16_t*)(((stmt).d)->data)\"\n"},"seq":1588}
1: (45381) <-1130-var-create - * "(const char16_t*)(((stmt).d)->data)"
--> E (output): {"type":"event","output":"1: (45382) ->1130^error,msg=\"-var-create: unable to create variable object\"\n"},"seq":1590}
1: (45382) ->1130^error,msg="-var-create: unable to create variable object"
--> E (output): {"type":"event","output":"1: (45382) ->(gdb)\n"},"seq":1592}
1: (45382) ->(gdb)
--> E (output): {"type":"event","output":"1: (45382) 1130: elapsed time 0\n"},"seq":1594}
1: (45382) 1130: elapsed time 0
--> R (evaluate-28): {"type":"response","request_seq":28,"success":true,"command":"evaluate","body":{"result":"-var-create: unable to create variable object","type":"QString","variablesReference":1012},"seq":1596}
<--   C (variables-29): {"command":"variables","arguments":{"variablesReference":1012},"seq":29}
--> E (output): {"type":"event","output":"1: (45428) <-1131-var-create - * \"((stmt).d)->size\"\n"},"seq":1599}
1: (45428) <-1131-var-create - * "((stmt).d)->size"
--> E (output): {"type":"event","output":"1: (45430) ->1131^done,name=\"var48\",value=\"129\",type=\"int\","seq":1601}
1: (45430) ->1131^done,name="var48",value="129",type="int","output":"1: (45430) ->(gdb)\n"},"seq":1603}
1: (45430) ->(gdb)
--> E (output): {"type":"event","output":"1: (45430) 1131: elapsed time 2\n"},"seq":1605}
1: (45430) 1131: elapsed time 2
--> E (output): {"type":"event","output":"1: (45430) <-1132-var-create - * \"((stmt).d)->ref._q_value\"\n"},"seq":1607}
1: (45430) <-1132-var-create - * "((stmt).d)->ref._q_value"
--> E (output): {"type":"event","output":"1: (45433) ->1132^done,name=\"var49\",value=\"1\",type=\"volatile int\","seq":1609}
1: (45433) ->1132^done,name="var49",value="1",type="volatile int","output":"1: (45433) ->(gdb)\n"},"seq":1611}
1: (45433) ->(gdb)
--> E (output): {"type":"event","output":"1: (45433) 1132: elapsed time 2\n"},"seq":1613}
1: (45433) 1132: elapsed time 2
--> E (output): {"type":"event","output":"1: (45434) <-1133-var-create - * \"((stmt).d)->size\"\n"},"seq":1615}
1: (45434) <-1133-var-create - * "((stmt).d)->size"
--> E (output): {"type":"event","output":"1: (45437) ->1133^done,name=\"var50\","seq":1617}
1: (45437) ->1133^done,name="var50","output":"1: (45437) ->(gdb)\n"},"seq":1619}
1: (45437) ->(gdb)
--> E (output): {"type":"event","output":"1: (45437) 1133: elapsed time 3\n"},"seq":1621}
1: (45437) 1133: elapsed time 3
--> E (output): {"type":"event","output":"1: (45437) <-1134-var-create - * \"*(((stmt).d)->data,c)\"\n"},"seq":1623}
1: (45437) <-1134-var-create - * "*(((stmt).d)->data,c)"
--> E (output): {"type":"event","output":"1: (45438) ->1134^done,name=\"var51\","seq":1625}
1: (45438) ->1134^done,name="var51","output":"1: (45438) ->(gdb)\n"},"seq":1627}
1: (45438) ->(gdb)
--> E (output): {"type":"event","output":"1: (45439) 1134: elapsed time 1\n"},"seq":1629}
1: (45439) 1134: elapsed time 1
--> E (output): {"type":"event","output":"1: (45439) <-1135-var-evaluate-expression var51\n"},"seq":1631}
1: (45439) <-1135-var-evaluate-expression var51
--> E (output): {"type":"event","output":"1: (45440) ->1135^done,value=\"\"\n"},"seq":1633}
1: (45440) ->1135^done,value=""
--> E (output): {"type":"event","output":"1: (45440) ->(gdb)\n"},"seq":1635}
1: (45440) ->(gdb)
--> E (output): {"type":"event","output":"1: (45440) 1135: elapsed time 1\n"},"seq":1637}
1: (45440) 1135: elapsed time 1
--> E (output): {"type":"event","output":"1: (45441) <-1136-var-create - * \"(int[50])*(((stmt).d)->data,"seq":1639}
1: (45441) <-1136-var-create - * "(int[50])*(((stmt).d)->data,"output":"1: (45442) ->1136^done,name=\"var52\",numchild=\"50\",value=\"[50]\",type=\"int [50]\","seq":1641}
1: (45442) ->1136^done,name="var52",numchild="50",value="[50]",type="int [50]","output":"1: (45442) ->(gdb)\n"},"seq":1643}
1: (45442) ->(gdb)
--> E (output): {"type":"event","output":"1: (45442) 1136: elapsed time 1\n"},"seq":1645}
1: (45442) 1136: elapsed time 1
--> E (output): {"type":"event","output":"1: (45442) <-1137-var-list-children --simple-values \"var52\" 0 1000\n"},"seq":1647}
1: (45442) <-1137-var-list-children --simple-values "var52" 0 1000
--> E (output): {"type":"event","output":"1: (45445) ->1137^done,children=[child={name=\"var52.0\",exp=\"0\",child={name=\"var52.1\",exp=\"1\",child={name=\"var52.2\",exp=\"2\",child={name=\"var52.3\",exp=\"3\",child={name=\"var52.4\",exp=\"4\",child={name=\"var52.5\",exp=\"5\",child={name=\"var52.6\",exp=\"6\",child={name=\"var52.7\",exp=\"7\",child={name=\"var52.8\",exp=\"8\",child={name=\"var52.9\",exp=\"9\",child={name=\"var52.10\",exp=\"10\",child={name=\"var52.11\",exp=\"11\",child={name=\"var52.12\",exp=\"12\",child={name=\"var52.13\",exp=\"13\",child={name=\"var52.14\",exp=\"14\",child={name=\"var52.15\",exp=\"15\",child={name=\"var52.16\",exp=\"16\",child={name=\"var52.17\",exp=\"17\",child={name=\"var52.18\",exp=\"18\",child={name=\"var52.19\",exp=\"19\",child={name=\"var52.20\",exp=\"20\",child={name=\"var52.21\",exp=\"21\",child={name=\"var52.22\",exp=\"22\",child={name=\"var52.23\",exp=\"23\",child={name=\"var52.24\",exp=\"24\",child={name=\"var52.25\",exp=\"25\",child={name=\"var52.26\",exp=\"26\",child={name=\"var52.27\",exp=\"27\",child={name=\"var52.28\",exp=\"28\",child={name=\"var52.29\",exp=\"29\",child={name=\"var52.30\",exp=\"30\",child={name=\"var52.31\",exp=\"31\",child={name=\"var52.32\",exp=\"32\",child={name=\"var52.33\",exp=\"33\",child={name=\"var52.34\",exp=\"34\",child={name=\"var52.35\",exp=\"35\",child={name=\"var52.36\",exp=\"36\",child={name=\"var52.37\",exp=\"37\",child={name=\"var52.38\",exp=\"38\",child={name=\"var52.39\",exp=\"39\",child={name=\"var52.40\",exp=\"40\",child={name=\"var52.41\",exp=\"41\",child={name=\"var52.42\",exp=\"42\",child={name=\"var52.43\",exp=\"43\",child={name=\"var52.44\",exp=\"44\",child={name=\"var52.45\",exp=\"45\",child={name=\"var52.46\",exp=\"46\",child={name=\"var52.47\",exp=\"47\",child={name=\"var52.48\",exp=\"48\",child={name=\"var52.49\",exp=\"49\","seq":1649}
1: (45445) ->1137^done,children=[child={name="var52.0",exp="0",child={name="var52.1",exp="1",child={name="var52.2",exp="2",child={name="var52.3",exp="3",child={name="var52.4",exp="4",child={name="var52.5",exp="5",child={name="var52.6",exp="6",child={name="var52.7",exp="7",child={name="var52.8",exp="8",child={name="var52.9",exp="9",child={name="var52.10",exp="10",child={name="var52.11",exp="11",child={name="var52.12",exp="12",child={name="var52.13",exp="13",child={name="var52.14",exp="14",child={name="var52.15",exp="15",child={name="var52.16",exp="16",child={name="var52.17",exp="17",child={name="var52.18",exp="18",child={name="var52.19",exp="19",child={name="var52.20",exp="20",child={name="var52.21",exp="21",child={name="var52.22",exp="22",child={name="var52.23",exp="23",child={name="var52.24",exp="24",child={name="var52.25",exp="25",child={name="var52.26",exp="26",child={name="var52.27",exp="27",child={name="var52.28",exp="28",child={name="var52.29",exp="29",child={name="var52.30",exp="30",child={name="var52.31",exp="31",child={name="var52.32",exp="32",child={name="var52.33",exp="33",child={name="var52.34",exp="34",child={name="var52.35",exp="35",child={name="var52.36",exp="36",child={name="var52.37",exp="37",child={name="var52.38",exp="38",child={name="var52.39",exp="39",child={name="var52.40",exp="40",child={name="var52.41",exp="41",child={name="var52.42",exp="42",child={name="var52.43",exp="43",child={name="var52.44",exp="44",child={name="var52.45",exp="45",child={name="var52.46",exp="46",child={name="var52.47",exp="47",child={name="var52.48",exp="48",child={name="var52.49",exp="49","output":"1: (45445) ->(gdb)\n"},"seq":1651}
1: (45445) ->(gdb)
--> E (output): {"type":"event","output":"1: (45445) 1137: elapsed time 3\n"},"seq":1653}
1: (45445) 1137: elapsed time 3
--> E (output): {"type":"event","output":"1: (45446) Natvis Failed to parse typename: volatile int\n"},"seq":1655}
1: (45446) Natvis Failed to parse typename: volatile int
--> R (variables-29): {"type":"response","request_seq":29,"command":"variables","body":{"variables":[{"name":"[size]","value":"129","type":"int","evaluateName":"((stmt).d)->size","variablesReference":0,"memoryReference":"0x0000000000000081"},{"name":"[referenced]","value":"1","type":"volatile int","evaluateName":"((stmt).d)->ref._q_value","memoryReference":"0x0000000000000001"},{"name":"[0]","value":"","evaluateName":"((int[50])*(((stmt).d)->data,c))[0]","variablesReference":0},{"name":"[1]",c))[1]",{"name":"[2]",c))[2]",{"name":"[3]",c))[3]",{"name":"[4]",c))[4]",{"name":"[5]",c))[5]",{"name":"[6]",c))[6]",{"name":"[7]",c))[7]",{"name":"[8]",c))[8]",{"name":"[9]",c))[9]",{"name":"[10]",c))[10]",{"name":"[11]",c))[11]",{"name":"[12]",c))[12]",{"name":"[13]",c))[13]",{"name":"[14]",c))[14]",{"name":"[15]",c))[15]",{"name":"[16]",c))[16]",{"name":"[17]",c))[17]",{"name":"[18]",c))[18]",{"name":"[19]",c))[19]",{"name":"[20]",c))[20]",{"name":"[21]",c))[21]",{"name":"[22]",c))[22]",{"name":"[23]",c))[23]",{"name":"[24]",c))[24]",{"name":"[25]",c))[25]",{"name":"[26]",c))[26]",{"name":"[27]",c))[27]",{"name":"[28]",c))[28]",{"name":"[29]",c))[29]",{"name":"[30]",c))[30]",{"name":"[31]",c))[31]",{"name":"[32]",c))[32]",{"name":"[33]",c))[33]",{"name":"[34]",c))[34]",{"name":"[35]",c))[35]",{"name":"[36]",c))[36]",{"name":"[37]",c))[37]",{"name":"[38]",c))[38]",{"name":"[39]",c))[39]",{"name":"[40]",c))[40]",{"name":"[41]",c))[41]",{"name":"[42]",c))[42]",{"name":"[43]",c))[43]",{"name":"[44]",c))[44]",{"name":"[45]",c))[45]",{"name":"[46]",c))[46]",{"name":"[47]",c))[47]",{"name":"[48]",c))[48]",{"name":"[49]",c))[49]",{"name":"[Raw View]","value":"Explicit refresh required for visualized expressions","evaluateName":"[Raw View]","variablesReference":0}]},"seq":1657}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)