如何使用 natvis 调试可视化工具创建特定视图?

问题描述 投票:0回答:0

我正在使用

Microsoft
扩展 Image Watch 来预览
OpenCV
图像。

我尝试通过添加容器密钥来可视化容器内的图像,但

Visual Studio
调试器监视窗口不支持直接在容器内添加变量。

例如:

#include <opencv2/opencv.hpp>

struct MyStruct {
    cv::Mat img;
};

int main() {

    cv::Mat img(64, 64, CV_8UC3, cv::Scalar(0, 0, 255));
    map["a"].img = img;
}

当我尝试通过添加到监视窗口来可视化图像时

map["a"].img
,它是无效的。

我需要通过检查/迭代地图来添加它,直到找到所需的键:

仅输入此名称才有效:

((std::_Tree_node<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,MyStruct>,void *>*)0x0000026e1a358a70)->_Myval.second.img

经过大量搜索,我发现了这个:Natvis框架

我想知道它是否适用于这个用例,我以前从未使用过 natvis。

我按照教程添加了一个新的

.natvis
到我的项目中:

Project > Add new item > Visual C++ > Utility > Debugger visualization file (.natvis).

<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 
</AutoVisualizer>

现在我完全迷失了,我重新阅读了示例,但我仍然不知道如何创建特定视图以便能够通过其键预览图像,即

map["a"].img

c++ visual-studio opencv visual-studio-2022 visual-studio-debugging
© www.soinside.com 2019 - 2024. All rights reserved.