代码之家  ›  专栏  ›  技术社区  ›  shadeMe

可执行代码处无法访问的断点

  •  2
  • shadeMe  · 技术社区  · 15 年前

    我有两个DLL,一个是用C++编写的,另一个是用C++ + CLI编写的。前者被注入到一个进程中,然后在稍后的时间点加载后者。调试时,我注意到本机dll的断点运行正常,而另一个则不正常,即使正在执行其代码。

    断点显示此消息: 不会命中此断点。没有与此行关联的可执行代码。可能的原因包括:预处理器指令或编译器/链接器优化。

    “模块”窗口告诉我插件的符号已加载。我正在运行它的调试版本。有什么关于为什么会这样的想法,也许是个解决办法?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Sameh Deabes    15 年前

    您所面临的问题的原因是PDB(“PDB”代表程序数据库,一种专用的文件格式(由Microsoft开发),用于存储有关程序的调试信息)不是最新的。

    尝试清理解决方案(包含托管代码dll)并重新生成它。

    小费 :如果您引用的是DLL,请尝试将最新的PDB放在它旁边。您可以从bin文件夹中获取pdb。

        2
  •  1
  •   Stu Mackellar    15 年前

    我假设您使用的是Visual Studio。是否已打开混合模式调试?

    (项目属性->调试->调试器类型)