none
真机环境下调试C++编写的DLL,无法跟踪进DLL代码的问题 RRS feed

  • 常规讨论

  • 开发环境:VS2008 + WM Professional SDK 6

    我在DLL工程所在的解决方案里面新建了一个调试工程,调试程序使用LoadLibrary显式加载DLL,编译后将调试程序EXE和DLL都部署到真机环境中,然后设置DLL工程为启动项目,并将远程可执行程序指向该调试程序;

    结果发现调试程序中的断点会被执行,而DLL中设置的断点无法执行,在调试过程中,VS的模块窗口显示DLL的符号状态为已加载,但是DLL的名称下会出现一个红色的叹号;

    我检查过模块窗口中显示的DLL的符号文件时间戳和路径,都与VS生成的pdb文件的时间戳和路径是一致的,我也参考过下面的帖子设置过pdb文件路径,但还是会出现无法跟踪的问题;

    http://social.microsoft.com/Forums/zh-CN/1729/thread/4d8989cc-2eb9-4d6b-8a45-3d0f26cc8c73

    请教下我的问题出在哪个方面??

    2010年4月29日 7:41

全部回复

  • DLL部署的路径和EXE程序调用的路径是一致的吗,如果不是,请设置成一样的再试一下。我按照那个步骤没有问题。


    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2010年5月3日 10:04
    版主
  • DLL和EXE都是部署在一个目录下面的,LoadLibrary的返回值也不为空,但是在DLL加载完成后,模块窗口会在DLL的名称那里显示一个红色的叹号,

    如下图:

    模块窗口2

    我想问一下没有使用SDK中证书进行签名的DLL是不是不能正常加载??

    2010年5月5日 7:02
  • 这个跟证书没有关系。如果怀疑证书的原因,可以用WM6.0 professional 的模拟器,这个模拟器的安全设置较低。在这个上面测试。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2010年5月5日 7:07
    版主