You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio跨平台CMake项目的调试器中可视化自定义类

解决方案

Visual Studio 全目标(Windows/WSL/远程Linux)natvis配置方法

你可以直接通过以下步骤配置,适配你提到的所有编译目标,VS 2019及以上版本原生支持该方案:

  1. 将你编写好的.natvis文件放到对应模块的目录下,例如给dbe_lib用的可视化文件放到_dbe_lib目录下,命名为dbe_custom.natvis。
  2. 修改_dbe_lib/CMakeLists.txt,将natvis文件加入目标配置:
cmake_minimum_required (VERSION 3.8)

# 直接将natvis文件加入源文件列表即可,VS会自动识别该类文件
add_library(dbe_lib STATIC "dbe_lib.cpp" "dbe_lib.h" "dbe_custom.natvis")

target_include_directories(dbe_lib PUBLIC "<include directories>")

# 若使用CMake 3.18及以上版本,可以额外添加以下配置明确指定natvis属性,兼容性更好
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
  set_target_properties(dbe_lib PROPERTIES VS_NATVIS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/dbe_custom.natvis)
endif()
  1. 针对WSL、SSH远程RPi这类Linux目标,确保VS开启了跨平台natvis支持:打开工具 -> 选项 -> 跨平台 -> 调试,勾选在调试Linux项目时使用Natvis(该选项在VS 2019 16.9及以上版本默认开启)。
    配置完成后重新生成CMake缓存,调试时自定义类的可视化规则就会自动生效,所有链接了dbe_lib的目标(比如你的dbe_test)都可以直接复用该可视化配置。

纯Linux环境跨平台调试扩展方案

如果你后续需要在非VS的Linux环境下直接调试(比如终端直接运行GDB/LLDB),可以对应编写调试器适配的可视化规则,和natvis配合实现全场景支持:

  • GDB使用基于Python的Pretty Printer实现自定义类型可视化
  • LLDB使用自定义Formatter脚本实现可视化,也可直接导入natvis格式的配置
    STL的全平台调试可视化效果就是通过同时适配natvis、GDB Pretty Printer、LLDB Formatter三类规则实现的。

内容的提问来源于stack exchange,提问作者Dehim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:15:03