当前位置:网站首页 > C++编程 > 正文

vs怎么调试dll(vs怎么调试cpp文件)



1、 Dump文件放在哪里?


Dump文件不用非要放在你编译出来的位置,你完全可以建立一个新的文件夹来放它。但若不是存放在编译出来的位置,需要将编译生成的PDB文件拷贝到Dump文件目录,或是利用VS2005打开Dump文件后,设置PDB文件路径。





2、 如何恢复当时的现场?

可能你要问,怎么可能,这个dump文件可是用户发给我的,我不可能去用户家里调试吧?这个恢复现场可不是指的非要到那台机器上去,而是要把产生dump文件对应的二进制文件拿到。



但是恢复现场需要所有的二进制文件都要对应,你一定要有导致用户崩溃的那些Exe和DLL。既然是你发布的程序,Exe文件当然你会有。所以这里只考虑DLL就行了。



Dump文件中记录了所有DLL文件的版本号和时间戳,所以你一定可以同过某种途径拿到它。如果你能从用户那里拿到最好,如果不方便,用户不可能用的是我们平常不常用的操作系统,所以找个有对应系统的机器一般都会有。但是记住不仅是文件名称要一致,还要核对版本和时间戳,如果不同一样没有办法用。



如果客户用了某个特殊的补丁怎么办?



其实这个问题也很好解决,只要它不阻碍阅读堆栈,就不用管它,调试Dump和运行程序不一样,缺少一两个DLL没有任何问题。





3、 如果真的需要怎么办?

符号文件现在主要是指PDB文件。



如果没有符号文件,那么调试的时候可能导致堆栈错误。



如果你丢失了这个发布版本中你编译出来的那些exe和DLL的PDB,那么这个损失是严重的,重新编译出来的版本是不能使用的。



我自己的DLL都有了,可是缺的是系统的DLL的对应PDB文件怎么办?图1.4中已经介绍了方法。微软在它的符号数据库上为我们提供了所有的PDB文件,还有部分非关键DLL。设置好后程序将自动下载需要的PDB及DLL文件。





4、 拿到需要的文件了,这些文件应该放在哪里?

符号数据库中的文件不用动,把其它的exe和DLL、PDB文件放在dump文件目录里就行了。





5、 我用的是VS2005,明明有源代码,为什么显示不了?

这个是dump调试的最头痛问题,代码可能已经改过了,即使你从SVN拿到当时的版本,时间戳也是错的,VS2005就是不让你显示代码。其实只要在



Tools/Options,Debugging/General中去掉



Require source files to exactly match the original version的复选就行了。

到此这篇vs怎么调试dll(vs怎么调试cpp文件)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!









































版权声明


相关文章:

  • oracle编程软件(oracle编写)2025-10-01 23:54:10
  • com串口线接法(com9串口)2025-10-01 23:54:10
  • linux安装wechat(Linux安装和配置cuDNN?)2025-10-01 23:54:10
  • console接口是干嘛的图片(console接口是干嘛的用网线可以吗)2025-10-01 23:54:10
  • libxml2官网(libxkbcommon-x11)2025-10-01 23:54:10
  • can通讯接线图(can通讯总线)2025-10-01 23:54:10
  • 重绘幅度0(重绘幅度cfg)2025-10-01 23:54:10
  • pointnet++改进(pointnet改进专栏)2025-10-01 23:54:10
  • plc1ms定时器(plc1ms定时器的用法)2025-10-01 23:54:10
  • 返回上级目录(cmd返回上级目录)2025-10-01 23:54:10
  • 全屏图片