【发布时间】: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