0

我有一个项目是 C++ WIN32 项目。我发现了一个问题,有些符号可以被 windbg 识别,但有些不能。我不知道为什么。特点是:

1) 两者都是 C++ 方法

2) 两个函数都在一个 .cpp 文件中

3) 这两个函数在源文件中非常接近,并且它们都没有被#ifdef 括起来

4)我已经使用dbh.exe检查了符号,windbg中缺少的符号也不在pdb文件中。

我猜符号丢失是否可能是由于类的继承?请推荐,谢谢!垃圾桶

4

3 回答 3

3

如果你不使用函数,只要它不是虚函数,它可能会被链接器剥离。未使用的全局数据对象也可能被删除。

于 2009-10-27T03:28:09.117 回答
0

该函数是否曾被调用?

它可能有助于提供更多细节,说明您为什么认为它是“由于类的继承”

于 2009-10-27T03:17:22.133 回答
0

听起来源代码可能与 PDB 文件不兼容。

可能是在生成 PDB 文件后添加的功能?

您可以通过以下方式验证这一点:

  1. 将断点添加到您知道将执行的代码行。
  2. 单步执行代码并确保调试器不会在任何空白代码行上停止(这意味着代码和 PDB 文件不匹配)。

我建议的第一件事是重建源代码,看看是否能解决问题。

如果这不起作用,请提供更多信息,以便我们帮助您进一步诊断。

于 2009-10-27T03:27:48.203 回答