【问题标题】:Most variables not displayed when debugging VC6 code in VS 2005 and 2010在 VS 2005 和 2010 中调试 VC6 代码时大多数变量不显示
【发布时间】:2013-02-25 19:33:46
【问题描述】:

在调试使用 Visual Studio 6 构建的代码时,Visual Studio 2010 只能显示局部具体变量(即 int、bool 等)的值。

Visual Studio 6 构建正在生成一个 pdb 文件,按照以下问题的建议选择“调试信息”和“Microsoft 格式”:Browse VC6 DLL variables content (DEBUG)

例如,在下面的代码中,我可以看到其值的唯一变量是“var”。 “看到”是指变量出现在“Locals”或“Auto”窗口中并带有一个值,我在工具提示中得到一个值,或者当我在 Watch 窗口中输入变量名时解析了它。

似乎我看不到“num”,因为它是函数的参数,我看不到“m_member”,因为它是类成员。我看不到“stackMem”或“heapMem”,因为它们不是简单类型。

class MyClass
{
public:
MyClass() : m_member(0) {}
int aMethod(int num)
{
    m_member = m_member + num;
    return m_member;
}
private:
int m_member;
};

void main()
{
MyClass* heapMem = new MyClass();
MyClass stackMem;

int var = heapMem->aMethod(5);
var = stackMem.aMethod(10);
}

我可以做些什么来更好地在 VS 2010 等较新的调试环境中调试旧的 VC6 代码?

【问题讨论】:

  • 谢谢博。是的,我的问题非常相似。不幸的是,我生成了一个 pdb 文件,并确保按照建议在 VC6 构建中选择了“调试信息”和“Microsoft 格式”,但我仍然只能看到(看起来像)是具体类型(int、bool 等)的局部变量。 ) 无论我在哪个窗口中查看(Locals、Auto、Watch、工具提示)
  • @Reuben 编辑问题并添加您在上面的评论中提供的信息可能会很有用,并且还包括指向可能重复和简短说明的链接,表明您知道该问题并且你的与众不同。

标签: c++ visual-studio-2010 visual-c++-6


【解决方案1】:

我不记得以前 VC6 是如何工作的;但在 VS2005 和更近的 Visual Studio 版本中,在调试时可以停靠不同的视图(选项卡/窗口)。

Watch、Auto(自动变量)、Locals、Callstack...

当您开始调试时,它们(应该)在“调试”菜单中可用。

【讨论】:

  • 感谢您回答 Max。不幸的是,我的问题不是关于 IDE 中各种调试窗口的位置,而是我没有在“自动”窗口中看到当前调用堆栈的任何变量(除了一些本地变量)(对于示例)。
猜你喜欢
  • 2020-10-01
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 2019-08-08
  • 2015-02-18
  • 1970-01-01
  • 2021-02-27
  • 2021-03-25
相关资源
最近更新 更多