2016-02-03 30 views
17

我有一个VB6项目,并已启用它生成pdb文件(this显示如何做到这一点)。不过,我不能与他们进行调试,当我与symcheck检查他们,我得到这样的输出:为什么我的PDB的我的VB6项目不匹配生成的DLL?

Symchk的:MyFile.dll失败 - MyFile.pdb不匹配或没有发现

Symchk的:失败的文件= 1

Symchk的:传递+忽略的文件= 0

我已经详细输出其找到PDB(甚至将它移动到一个目录,它的检查)检查,但它只是似乎没有想要匹配。

什么可能导致这种情况,我该怎么办?

+0

尝试一个较老的windbg/symchk版本。我认为多年来MSFT更新了PDB格式,也许新版本无法从VB6中理解旧格式。 – magicandre1981

+0

你有没有试过我的建议,并使用较旧的调试版本? – magicandre1981

+0

可能是用户身份问题? –

回答

0

我遇到了与Visual Studio相同的问题(它在C#项目上)。由于您没有提供有关您的环境设置的许多信息,因此很难确定问题的确切原因。

因为我没有使用Visual Basic IDE的经验,所以我会提出Visual Studio问题的原因。根据您的项目和设置,这可能适用于或不适用于您的VB IDE。试着将它们应用到它。

所以这里是一个可以与Visual Studio是造成这种现象的潜在问题非详尽的列表:你的程序中使用

  1. 这些dll缓存那些
    • 如果你的可执行文件会发生这种情况正在使用dll的缓存版本(这也称为影复制)。这些文件通常位于临时文件夹中。 要解决这个问题,必须简单地删除这些临时文件。
  2. 你的调试器试图在错误的地方
    • 例如Visual Studio可以被设置在一个特定的地方来加载模块加载模块和符号。
      为了修正它具有一个固定在那里模块被加载的地方(Ctrl键 + d + 中号通常)。
  3. 您的清理/重建操作只重建输出项目。
    • 当您想要重建所有解决方案时,Visual Studio可能只重建您的输出项目。
      要解决它,必须检查它是否正确地重建整个解决方案。
      请注意,您的清理操作可能不会删除项目引用但与其无关的引用。这些文件将保留在输出文件夹中,直到您将其删除。
  4. Visual Studio已进入不稳定状态,可能需要重新启动。
    • 我没有更多的次数,我的Visual Studio实例的简单重新启动修复了大部分奇怪的编译时行为。
      要解决这个问题,必须重新启动Visual Studio。

通常一种防弹的路要走,当你遇到这样的是:

  • 清洁液
  • 删除每个项目
  • 的每一个bin和OBJ文件夹
  • 删除用于卷影副本的任何临时文件夹
  • 执行重建
相关问题