VS调试技巧 之 attach to process
2014-10-21 20:01
330 查看
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,顺滕摸瓜找到那个函数,看看出了问题什么吧。
你有没有这样的经历:按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,顺滕摸瓜找到那个函数,看看出了问题什么吧。
相关文章推荐
- VS调试技巧之----Attach to Process
- VS调试技巧之----Attach to Process .
- VS调试技巧之----Attach to Process
- 程序调试技巧 —— Attach to Process
- Visual Studio调试技巧 -- Attach to Process
- VS attach to process 到进程里无法调试
- 程序调试技巧 —— Attach to Process
- vs如何将attach to process放入到toolbar中,以方便调试
- 程序调试技巧 —— Attach to Process
- VS调试技巧之----Attach to Process
- 通过Debug-->Attach to Process的方式来调试网站
- [tip debugging]Attach VS debugger to more than one process at the same time
- 通过写代码,attach程序中创建的其他进程,将其加入VS的Debugger,以方便调试
- Process terminated without establishing connection to debugger --Flex调试错误解决办法
- 在真机上调试时出现“Error launching remote program: failed to get the task for process xxx"的解决方案
- ios在真机上调试时出现“Error launching remote program: failed to get the task for process xxx"解决办法(转)
- VS开发工具与调试技巧整理
- 【调试】VS中的调试技巧(2)
- [VS][VC] 在调试过程中watch变量的技巧
- 解决"T-SQL无法附加到进程"错误的补充,T-SQLcan not attach to process