簡體   English   中英

Visual Studio 2015 Natvis如何顯示函數靜態變量?

[英]How can Visual Studio 2015 Natvis display a function static variable?

我正在使用Microsoft Visual Studio 2015中的.natvis文件編寫調試器可視化工具。如果可能的話,我想在課程中提供一條信息。 我想知道獲取該變量的語法是什么。

這是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的實例上時,我希望看到向量的大小,但我不知道如何引用它(或者如果可能的話)。 這是可視化器類型,在我遇到問題的地方有<what goes here?>

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

實際問題要復雜得多,包括奇怪的重復模板模式以創建更好的枚舉對象,所以請不要評論這個有點人為的場景的無用性。

如果您可以讓您的監視窗口在函數外部聲明靜態函數變量值,那么您可以使用它。 但是,在AFAIK中,只允許在函數范圍內訪問靜態函數變量。 由於當你不在函數內時沒有到該對象的符號路徑,你就是SOL。

解決方法是將靜態變量移動到類范圍,然后有一個指向該變量的符號路徑,您可以從那里訪問它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM