1

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

编辑:

已请求示例代码

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();
}
4

1 回答 1

1

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

于 2013-11-13T19:55:37.677 回答