心胸决定格局,眼界决定境界...

[转]DLL项目程序的调试方法及“One or more breakpoints cannot be set ...”的解决方案

1.调试->窗口->模块->加载模块,需要包含dll的pdb文件,如果加载模块不匹配,则需要加载正确的模块。

2.如果dll工程没有dll产生,则看看输出路径是否有问题

 

Microsoft 的VC++是开发和测试DLL的有效工具,只需从DLL项目中运行调试程序即可。当你第一次这样操作时,调试程序会向你询问EXE文件的路径。此后每次在调试程序中运行DLL时,调试程序会自动加载该EXE文件。然后该EXE文件搜索DLL文件,这意味着你必须设置Path环境变量让其包含DLL文件的磁盘路径,或者也可以将DLL文件拷贝到搜索序列中的目录路径下。

另有一种设置方法是:1. 在workspace中,点击DLL项目右键选Setting,设置Debug标签,General选项下的Executable for debug session为相应exe路径,如下图1;2. 在Link标签的General选项中设置DLL的输出文件“Output file name”直接到exe所在的目录,如下图2。

<IGNORE_JS_OP>


图1 Debug设置

<IGNORE_JS_OP>


图2 Link设置

这样,即可在DLL程序中设置断点,开始调试。不过,调试时可能会有错误提示:Debug error:"One or more breakpoints cannot be set and have been disabled.Execution will stop at the beginning of the program."

<IGNORE_JS_OP>


图3 Debug提示错误

这是因为在调试时,程序以exe执行文件为激活项目,因此,处于非激活的dll项目中的断点无法跟踪。因此,只要在项目中把DLL项目设置为激活项目就可以调试了。设置如下:
<IGNORE_JS_OP>


图4 Set as active project

至此,在DLL文件中设置断点,就可以进行跟踪调试,而不用管exe的代码有没有了。

posted @ 2014-03-26 17:39  WELEN  阅读(815)  评论(0)    收藏  举报