【问题标题】:How can I view a static variable from outside the function that defines it in Visual Studio?如何从 Visual Studio 中定义静态变量的函数外部查看静态变量?
【发布时间】:2013-11-25 11:21:42
【问题描述】:

我正在查看一个崩溃转储,关于此崩溃如何发生的重要线索可能位于函数内的静态变量(在本例中为整数)的值内。问题是具有该静态变量的函数不在发生崩溃的调用堆栈中,因此我不能直接查看它。有没有办法从声明它的函数之外的调试器中查看这个变量的内容?

编辑:

已请求示例代码

int funcitonWithStaticVar()
{
    static int iRetVal;
    if (iRetVal == 0)
    {
        iRetVal = initializeValue();
    }
    return iRetVal
}

void functionThatCrashes()
{
    // Crash occurs in this function. The 
    // static variable in the other function 
    // may hold an important clue as to why
}

int foo()
{
    functionWithStaticVar();
    functionThatCrashes();
}

【问题讨论】:

  • 您能否添加一段示例代码,以便我清楚到底发生了什么?
  • 我认为解释已经足够了,但我添加了示例代码。这样就清楚了吗?
  • 如果你反汇编包含静态变量的函数,你应该能够从操作它的函数中的代码中找出它的地址。
  • @caf,看起来查看反汇编是要走的路。如果您将此作为答案,我会将其标记为已接受。

标签: c visual-studio-2010 visual-studio debugging visual-studio-debugging


【解决方案1】:

您可以通过查看访问它的函数的反汇编来确定静态变量的地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2011-03-10
    • 2021-11-28
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多