gpt4 book ai didi

c++ - Visual Studio 2015 Natvis 如何显示函数静态变量?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:47:14 24 4
gpt4 key购买 nike

我正在 Microsoft Visual Studio 2015 中使用 .natvis 文件编写调试器可视化工具。如果可能的话,我想在我的类(class)中获得一条信息。我想知道获取该变量的语法是什么。

这是 C++ 代码的简化版本:

class MyClass
{
public:

MyClass() {}

int getAValue(size_t index)
{
static std::vector<int> numberVector;

if (numberVector.size() <= index)
{
addSomeNumbersToTheEnd(numberVector);
}

return numberVector[i];
}
}

在调试器中,当我将鼠标悬停在 MyClass 的一个实例上时,我希望看到 vector 的大小,但我不知道如何引用它(或者如果可能的话)。这是可视化工具类型,带有 <what goes here?>在我遇到麻烦的地方:

<Type Name="MyClass">
<DisplayString>[$(Type)] staticVectorSize={<what goes here?>}</DisplayString>
</Type>

实际问题要复杂得多,涉及奇怪的重复模板模式来创建更好的枚举对象,所以请不要评论这种有点人为的场景的无用性。

最佳答案

如果您可以让监 window 口在函数外部声明静态函数变量值,那么您就可以使用它。但是,据我所知,只允许在函数范围内访问静态函数变量。由于当您不在函数内时没有指向该对象的符号路径,因此您是 SOL。

解决方法是将静态变量移动到类范围,然后有一个变量的符号路径,您可以从那里访问它。

关于c++ - Visual Studio 2015 Natvis 如何显示函数静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481625/

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