`
lovnet
  • 浏览: 6921665 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

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

不过,某些情况下DebugBreak会不起作用。有可能该断点异常被SEH所截获(COM服务器的情况下)或者在调试器启动的这段时间内有可能导致TimeOutWindows 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.exeVisual StudioJIT Debugger),或者其它你喜欢的Debugger,比如WinDbg等等。注意如果有必要的话,请将该调试器的目录加入到Path

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

分享到:
评论

相关推荐

    JLINK Debugger aborted问题解决

    本文将详细探讨“JLINK Debugger aborted”问题的解决方法,帮助开发者解决在软件开发和嵌入式OS调试中可能遇到的困扰。 当出现"JLINK Debugger aborted"错误时,这通常意味着调试过程被异常中断,可能是由于多种...

    myeclipse中debug class文件

    2. **启动Debug模式**:在MyEclipse中,选择"Run As" -> "Java Application",然后在弹出的对话框中选择对应的主类,就可以以Debug模式运行程序。如果你已经有一个运行中的应用,可以通过"Debug As"来切换到Debug...

    domino故障收集及处理

    1. **宕机(Crash)**: 宕机是由于服务器在程序或操作系统层面遇到致命异常错误导致的,通常需要重新启动服务器。宕机时,主控台日志或操作系统会记录如PANIC、FATAL或Access Violation等错误信息。如果配置了自动收集...

    GDB调试总结

    在软件开发过程中,调试是不可或缺的一部分,尤其在Linux环境中,GDB(GNU Debugger)作为强大的命令行调试工具,帮助开发者深入理解程序执行过程,定位和修复错误。本文将全面总结GDB的调试流程、调试运行中的进程...

    Sysinternals 实用程序全集 (完整版 49.2M)

    查看哪些程序被配置为在系统启动和您登录时自动启动。Autoruns 还能够完整列出应用程序可以配置自动启动设置的注册表和文件位置。 LogonSessions 列出活动的登录会话 NewSID 了解每个人都一直在谈论的计算机 SID...

    GDB调试指导

    GDB的`display`命令可以在每次程序暂停时自动显示某个表达式的值,这对于观察变量的变化非常有用。例如,`display/i $eip`会显示当前指令指针的值。 此外,GDB还提供了命令脚本功能,允许你预先定义一系列调试操作...

    系统调试工具windbg

    1. **启动调试**:可以通过设置Boot Debugger,让系统启动时自动进入Windbg调试模式。 2. **挂起和恢复调试**:可以暂停驱动的执行,检查当前状态,然后恢复执行,便于分析问题。 3. **调试信息窗口**:显示驱动的...

    QQ2440V3开发板手册,开发WINCE和LINUX非常详细的教程

    - **如何挂接使用网络文件系统NFS**:指导用户如何挂载NFS服务。 - **设置并保存系统实时时钟**:说明了如何设置并保存系统时间。 - **如何掉电保存数据到Flash**:提供了数据掉电保存的方法。 - **如何设置开机自动...

    Linux下的C编程

    5. **调试**:GDB(GNU Debugger)是Linux下用于调试C程序的强大工具。通过`gdb`命令启动,然后使用`run`命令执行程序,`break`设置断点,`print`查看变量值。 6. **标准库和头文件**:C语言依赖于一系列标准库,如...

    内核调试例程-kprober,jprober等samples

    1. **kgdb**:Kernel GNU Debugger,是一种在主机上调试目标机内核的工具,它允许开发者在目标系统运行时远程调试内核,查看变量、跟踪调用栈等。 2. **sysrq**:System Request键,可以触发内核的特殊操作,如打印...

    WinDBG使用手册及相关文档总结

    WinDBG,全称为Windows Debugger,是由微软开发的一款强大的调试工具,广泛用于Windows系统的软件调试、崩溃分析和性能优化。这款工具对于开发者、系统管理员以及安全研究人员来说,是必不可少的诊断和问题解决利器...

    嵌入式Linux系统开发技术详解--基于ARM(完整版).pdf

    - **挂接根文件系统**:将文件系统映像加载到内存中。 **4.5 应用程序的远程交叉调试** - **交叉调试的模型**:利用GDB与目标板上的gdbserver配合进行调试。 - **交叉调试程序实例**:通过示例程序演示具体的调试...

    mini2440用户手册

    友善之臂mini2440用户手册 第一章 Mini2440 开发板介绍...........................................................................................................................- 15 -  ...

Global site tag (gtag.js) - Google Analytics