问题标签 [natvis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 Visual Studio 跨平台 CMake 项目的调试器中可视化自定义类?
我目前正在使用 Visual Studio 和 CMake 进行跨平台开发。以前,我只会创建本机 Visual Studio 应用程序,并且可以使用 natvis 文件轻松创建自定义类的调试可视化。但是,我尝试将 natvis 文件添加到我的 CMake 项目的每一种方式都失败了。例如,我尝试通过 user12322620 调整此答案,但无济于事。
这是我的目录结构:
我的顶级 CMakeLists.txt 文件:
我的 dbe_lib CMakeLists.txt 文件:
我的 dbe_test CMakeLists.txt 文件:
我目前通过 ssh 瞄准 Windows 以及 WSL2 Ubuntu 和 RPi。我的 Visual Studio 版本是 2019,但我也在 Visual Studio 2022 RC3 上尝试过。
是否可以将像 natvis 文件这样的调试可视化文件添加到这样的 CMake 项目中?有没有跨平台的解决方案?我猜这是可能的,因为像 std::vector 这样的 STL 类无论目标平台如何都有很好的调试可视化工具。
c++ - 使用运行时字符串在 natvis 中指定对象类型
说我有一个结构
bar
是某种类型擦除的东西,barTypeName
是一个正确的 C++ 类型标识符,用于标识bar
.
我想在 Visual Studio 调试器中可视化这一点,尤其是在 Watch 窗口中。没有涉及可以给我正确类型的模板。类型本身通常是 POD,调试器无法自动找出类型。
问题:在 natvis 中有什么方法可以告诉调试器的类型,bar
以便它在 Watch 窗口中正确显示?
我偶然发现<MostDerivedType>
了natvis 架构,但据我所知,它没有记录,我不知道它是否符合我的要求。
<CustomVisualizer>
如果它提供了一种处理此问题的方法而 natvis 没有,我很高兴在 C++ 中使用和实现它。