本文主要是介绍附加到进程调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 用途
- 原理
- 附加到进程的方法
前言
第一次使用“附加到进程调试”功能,在网上找了好久没有找到一个能说清楚到底是干什么的,看了一下下午最后还是请教了大哥才明白。好的指导很重要。于是决定记录下来。
一知半解是不行的,刚发布了的博文现在就来追加更新。
用途
乙方给甲方提供了一个算法,用接口封装好dll后,发给甲方调用,甲方发现效果不对,但是乙方说没问题,路途遥远不方便去现场查看,于是甲方将自己的exe发给乙方,让乙方附加到进程调试,乙方打开自己的dll生成工程文件,将甲方的exe附加到进程调试,打上断点就可以进入到自己的dll源码中打断点调试了。
另一种场景,整个项目很庞大,涉及到的模块又多又大,于是每个子模块分别生成dll库,调试的时候可以通过附加到进程调试,如果没有这个附加到进程的渠道,就需要把每个子模块代码添加进主项目中,会有很大工作量,也容易出错,修改起来也不方便。
原理
源码生成的dll里包含了生成这个dll源码的绝对路径,直接将debug模式下生成的dll文件复制到本机另一个项目中使用时,可以在项目调试时按照dll记录的绝对地址进入dll源码进行调试。
注意:
1.生成dll的源码必须是在debug模式生成的;
2.dll源码在本机存储位置和路径名称不能变,否则识别不到。
也可以远程调试在其他设备上的dll源码。我没有用过,但是是可行的。
追加理解:
在生成dll的工程文件中,debug文件夹下会生成pdb文件,改文件通常是占用空间最大的,也就是包含信息量最大最全的,包含了调试需要用到的信息。如果将生成dll的工程下pdb文件删除,主工程的调试模式及时其他信息全正确,也无法进入到调用的dll源码中调试。
关于pdb文件的内容和用途,将会继续学习并在下一篇博文中说明。
附加到进程的方法
第一步:先启动要调试的vs工程(也就是调用dll的工程),用debug或者while循环使得进程保持打开;
第二步:在dll源码工程处,调试->附加到进程,在可用进程中选择需要附加的进程,点击“附加”。
第三步:可以开始debug了。
这篇关于附加到进程调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!