gpt4 book ai didi

c++ - 在调试中构造 C++ 类的详细信息

转载 作者:行者123 更新时间:2023-11-28 04:31:48 25 4
gpt4 key购买 nike

如何增强为 C++ 类显示的调试信息?具体来说,让我们看看 vector 类:它的顶层 View 只包含它的大小变量(图像中的#1),展开的 View 一个一个地显示它的元素可以说是参数(图片中的#2)

如何控制顶级摘要中显示的内容以及子级别中显示的内容?是否有特定的设计模式可以实现这一目标?

编辑:是否有跨平台解决方案?一个适用于 Linux 下的 CLion、Win 上的 VS、一般的 CMake 等。

一个复制 vector 行为的小示例将非常有用(如果这甚至可能而不必复制实际 vector 类的复杂性质)。

screenshot


比如说,我试着写一个类如下

template <class T> class Vector
{
public:
Vector(size_t size) : size(size)
{
buffer = new T[size];
for (size_t i = 0; i < size; ++i)
buffer[i] = T();
}

~Vector()
{
if (buffer != NULL)
delete[]buffer;
}

T operator[](const size_t& idx) { /* ... */ }

private:
size_t size;
T* buffer;
};

然后调试器只向我展示了这个(正如人们期望查看类的结构): enter image description here

最佳答案

您可以创建 Natvis 可视化。详细信息太长,无法进入此处,但请参阅 Microsoft 文档以了解如何 Create custom views of native objects in the Visual Studio debugger了解如何创建它们。

关于c++ - 在调试中构造 C++ 类的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52692903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com