在程序启动的时候自动挂接Debugger

今天在逛微软CLR开发组成员的blog的时候看到一则调试的小技巧,觉得非常实用,转过来留个备份。

在某些情况下,你可能需要调试一个由其他程序所启动的进程的启动代码,而这个过程并不由你所控制。比较典型的例子有COM进程外服务器和Windows Service。

通常你可以在代码中手动加上DebugBreak API调用来自动启动调试程序,大部分情况这都能工作。

不过,某些情况下DebugBreak会不起作用。有可能该断点异常被SEH所截获(COM服务器的情况下)或者在调试器启动的这段时间内有可能导致TimeOut(Windows Service的情况下),因此需要一种另外的方法,如下:

1. 打开RegEdit

2. 找到HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution options

3. 在该键下面新建一个Key,名称为你的程序名,如myprogram.exe

4. 在新建的key下面新建一个String,名称为Debugger

5. 把Debugger的值修改为vsjitdebugger.exe(Visual Studio的JIT Debugger),或者其它你喜欢的Debugger,比如WinDbg等等。注意如果有必要的话,请将该调试器的目录加入到Path中

经过如此设置之后,以后当你每次启动myprogram.exe的时候,你所指定的调试器便会自动启动,开始调试。


转载处:http://blog.csdn.net/ATField/

转载于:https://www.cnblogs.com/yxin1322/archive/2009/09/15/1566674.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值