0、随便说点 最近因为一些原因一直都没有更新博客,从今天开始要逐渐恢复了,也是对自己的鞭策。
1、本文目标 本文要说在有DLL 和 EXE源码的情况下调试DLL 和 EXE, 工具是VC++2010,相信很多同学都会,肯定也有很多同学不会。 自己也曾经因为不懂怎么调试DLL、ActiveX控件而在调试的时候费很多劲。 今天就来说一说一个简单的调试方法。
2、应用场景 一个DLL:add.dll, 导出了一个函数Add计算两个数的和 一个EXE:useadd.exe,使用add.dll提供导出函数来计算结果 假设DLL 和 EXE在不同的解决方案中(在同一个解决方案中的方法是一样的),现在要在EXE的源码中调试进DLL的源码。 同时又分两种情况:①运行EXE ②调试EXE 下面会分别说明。
3、运行EXE 调试进DLL 为了不让EXE的代码一下执行过DLL中的导出函数,在该函数之前先加行代码暂停(比如MessageBox, cin输入流等) ①启动EXE ②在EXE中代码执行到DLL导出函数之前,在DLL项目代码中添加断点 ③选择调试菜单--附加到进程--选择之前的EXE进程 ④继续让EXE中代码执行即可
4、调试EXE 调试进DLL 这种情况下当调试DLL附加到EXE进程时,【附加】按钮是灰色不可用的,因为此时EXE正在被调试,其承载进程是VS调试器,所以应该在进程列表中选择 进行附加,其他步骤相同。
5、补充 调试ActiveX控件类似
6、再次补充 我们通常会遇到这样一种情况:【运行】(而非调试)EXE,发现有些运行结果不是期望的,这个时候我们就要【调试】一下看问题在哪里。 这个时候怎么办呢? 关掉EXE进程,如何重新F5?? 呵呵, 我以前就是这样。。 应该这样:在VS打开的项目里,还是点击 菜单【调试】-【附加到进程】-在进程列表中选择当前项目对应的EXE进程,附加即可。
https://zhidao.baidu.com/question/1689557997454061108.html Setting-Debug-Executable for debug http://blog.csdn.net/qingzai_/article/details/45348613 dll调试方法: 1.把最新生成的dll和pdb放到 启动这个dll 的进程目录下 2.启动这个进程 3.然后在dll 的项目中 调试选项-》附加到进程-》选择启动的这个进程 4.断点调试 非本进程dll错误处理方式: 0.把相关dll的pdb调试文件放到和的dll同目录 1.启动进程 2.找到调试-》窗口-》模块 (本进程所有相关的外部加载的dll)(找到出问题的dll) 3.在模块里面的符号状态一项 右键加载符号-》选择相关pdb 4.调用调试信息直接查看错误代码 |
|