如果给定一个natvis文件,vscode就可以很好地打印自定义对象。我正在运行linux并使用gdb进行调试。
文档说:
对于gdb/lldb调试("type":"cppdbg"),Natvis框架的一个子集已经移植到/C++扩展中,代码驻留在MIEngine共享组件中。如果需要其他未实现的功能,请在MIEngine GitHub页面上提交一个问题,详细说明缺少的内容。
我基于natvis页面这里创建了一个简单的natvis文件
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="MyArray">
<DisplayString>{{size={size}}}</DisplayString>
<Expand>
<Item Name="[size]">size</Item>
<ArrayItems>
<Size>size</Size>
<ValuePointer>ptr</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>我在我的launch.json中包含了对这个文件的引用
"visualizerFile": "${workspaceFolder}/file.natvis",在启动调试器并悬停在一个变量上之后,我看到“可视化表达式需要显式刷新”。这是很有希望的,因为它显示vscode已经找到了该文件,但是由于某些原因,它仍然无法应用它。在任何vscode OUTPUT/DEBUG CONSOLE选项卡中都没有natvis日志/错误。

我遗漏了什么吗?如何让vscode+gdb使用我的.natvis文件?
发布于 2022-07-15 21:39:52
https://stackoverflow.com/questions/72999833
复制相似问题