VS调试技巧 之 attach to process

Attach toprocess:用于和进程绑定,方便调试。

 

你有没有这样的经历:按F5开始调试时,程序需要好长时间才能启动,比如可能需要加载比较大的文件或资源,这时候你可能需要等很长时间,而下次调试时又不得不等很长时间以待程序启动。其实这浪费了很多的时间。那有没有比较好的解决方法呢,有,就是VS提供的Attach to Proces 的功能。你只要把待调试的程序启动,然后把程序和源码attach一下就可以调试了,程序会在你在源码中设置的断点处停下来,当你调试完成后,只要不关闭你的进程,下次还可以接着调,不必再把程序开启,少了很多的等待时间。

具体做法是:

先把你的待调试的进程开启起来,然后在VS中从TOOL菜单中选中attachto process,弹出如下对话框:


Tansport选中default表示和本机上的进程绑定,avaliableprocess列出了本地机器上现在运行的进程,选择你要调试的进程,然后点击attach就完成了绑定,接下来就可以开始调试了。

另外,attach to process也可以用于远程调试,只要更改Tansport的选项就可以了,非常方便。

 

--======================================--

 

按Ctrl+F5运行测试程序时,弹出一个错误窗口问你是要“终止、重试、忽略”,却没写出错的地方,让人很是郁闷。按F5进行调试,往往错误又不出现了。

 

对于这种出现概率较少的bug,当在运行时弹出那个对话框时可以先别急着选择那三个选项,点击visual studio菜单栏的debug->Attach to Process,开始对进程调试。

 

而此时一般进程正处于running状态,无法进行调试,点击debug工具栏的暂停按钮,就是两条坚杠的那个,然后此时编辑器会显示出程序暂停的位置,也就是出错的位置。

 

而这个出错的位置一般都是库函数或系统内核函数,基本看不懂,但是别急,程序会停留在这些函数里,那一定是自己程序的某个地方调用到这个函数里,那么怎么找到这个自己程序里的函数呢。

 

点击菜单栏debug->Windows->CallStack

在Call Stack调试区会从当前出错的函数逐级往上跟踪,一直到mian(),__tmainCRTStartup(),mainCRTStartup(),及kernel32.dll里面。那么自己程序中的函数就会紧接着main()函数。

OK,顺滕摸瓜找到那个函数,看看出了问题什么吧。



  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值