战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  257 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

调试中总会遇到这样的情况,比如,需要调试一个被另外一个进程启动的程序。最简单的方法莫过于直接在IDE中Attach到进程,但是这样的方法做一次还行。要是一直需要调试,编译后需要再调试,就会让你抓狂。

平时安装有VC IDE的机器一定会碰到这样的情况:如果程序有crash,会弹出一个JIT的调试对话框,询问使用何种调试器进行调试。这种情况同样会出现在使用dump文件时。这个对话框也是我们今天需要用到的。

如果需要调试一个被另外进程启动的进程,那么需要让这个被启动的线程能启动调试器,方法如下:

假定我们需要调试的应用程序名称为myapp.exe

 

1. 打开注册表

2. 在HKEY_LOCAL_MACHINE\Software\Microsoftware\Windows NT\CurrentVersion\Image File Execution Options中寻找myapp.exe文件夹

3. 如果这个文件夹不存在,那么就新建一个,例如:myapp.exe

4. 在文件夹里新建一个字符串键,名称为debugger,值为vsjitdebugger.exe

5. 如果使用的不是VC调试器,那么需要在环境变量中添加这个exe的启动路径

 

运行你需要被调试的程序试试吧,爽了吧!

 

转载请注明此文来自 战魂小筑博客 http://www.cppblog.com/sunicdavy

posted on 2010-11-16 21:22 战魂小筑 阅读(2685) 评论(4)  编辑 收藏 引用 所属分类: 程序调试技术

评论

# re: [原创]怎样自动启动VC调试器调试被另外一个程序启动的程序 2010-11-17 14:31 LOGOS
我会在myapp.exe中增加
__asm { int 3 }  回复  更多评论
  

# re: [原创]怎样自动启动VC调试器调试被另外一个程序启动的程序 2010-11-17 15:35 战魂小筑
@LOGOS
好方法,这是最简单的
  回复  更多评论
  

# re: [原创]怎样自动启动VC调试器调试被另外一个程序启动的程序 2010-11-17 18:13 http://www.cppblog.com/rawdata
@LOGOS
呵呵,我也经常性地使用__asm int3  回复  更多评论
  

# re: [原创]怎样自动启动VC调试器调试被另外一个程序启动的程序[未登录] 2013-02-19 15:52 刘伟
@LOGOS
good method。 楼主的方法我怎么试验不成功呢?能附图吗?有劳了  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理