【转】如何在程序启动的时候将调试器附加上去

设置应用程序以自动启动调试器

    • 启动注册表编辑器 (regedit)。
    • 在“注册表编辑器”中打开 HKEY_LOCAL_MACHINE 文件夹。
    • 定位到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options。
    • 在“Image File Execution Options”文件夹中,找到要调试的应用程序的名称,如 myapp.exe。 如果无法找到要调试的应用程序:
      • 右击“Image File Execution Options”文件夹,在快捷菜单上单击“新建项”。
      • 右击新项,然后在快捷菜单上单击“重命名”。
      • 将项名编辑成您的应用程序的名称;在本示例中为 myapp.exe。
    • 右击 myapp.exe 文件夹,在快捷菜单上单击“新建字符串值”。
    • 右击新的字符串值,然后在快捷菜单上单击“重命名”。
    • 将名称更改为debugger。
    • 右击新的字符串值,并在快捷菜单上单击“修改”。

      即显示“编辑字符串”对话框。

    • 在“数值数据”框中,键入 vsjitdebugger.exe。
    • 单击“确定”。
    • 在“注册表”菜单中,单击“退出”。
    • 包含 vsjitdebugger.exe 的目录必须位于系统路径中。 要将其添加到系统路径,请执行下列步骤:
      • 以经典视图打开“控制面板”,并双击“系统”。
      • 单击“高级系统设置”。
      • 在“系统属性”中,单击“高级”选项卡。
      • 在“高级”选项卡上,单击“环境变量”。
      • 在“环境变量”对话框中的“系统变量”下,选择“路径”,然后单击“编辑”按钮。
      • 在“编辑系统变量”对话框中,将该目录添加到“变量值”框中。 使用分号将它与列表中的其他项隔开。
      • 单击“确定”关闭“编辑系统变量”对话框。
      • 单击“确定”关闭“环境变量”对话框。
      • 单击“确定”关闭“系统属性”对话框。

      现在,使用任意方法启动该应用程序。 Visual Studio 将启动并加载该应用程序。

原文地址:https://www.cnblogs.com/bCPTdtPtp/p/12146615.html

时间: 2024-08-25 21:12:32

【转】如何在程序启动的时候将调试器附加上去的相关文章

Delphi应用程序的调试(十)调试器选项(在IDE中不要使用异常)

可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局级调试选项.从主菜单[Tools | Debugger Options]菜单项调出Debugger Options对话框. 在Debugger Options对话框的底部有一个标记为Integrated debugging的复选框,它控制是否使用IDE调试器调试程序.如果选中Integrated d

Delphi应用程序的调试(十)调试器选项

可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局级调试选项.从主菜单[Tools | Debugger Options]菜单项调出Debugger Options对话框. 在Debugger Options对话框的底部有一个标记为Integrated debugging的复选框,它控制是否使用IDE调试器调试程序.如果选中Integrated d

简单调试器的实现(二)使用反汇编引擎&建立第一个程序

让程序停下来: 动态调试器的一个重要特点就是:让程序停下来,这样我们才可以观测到程序的即时情况. 不过现在我们并不需要研究怎么下断点,系统已经帮我们激活了第一个断点.在创建调试进程时,系统会帮我们在ntdll.dll中设置一个INT3断点,我们就让程序在这里断下来. switch (DebugEvent->u.Exception.ExceptionRecord.ExceptionCode)//Int3断点的事件 { case EXCEPTION_BREAKPOINT: // ((DWORD )0

【iOS程序启动与运转】- RunLoop个人小结

学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等.其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属性和方法作为接口,是让我们在给定的方法里写代码实现自定义功能,做出各种各样的应用.这些方法的调用顺序最为关键,熟悉了程序运转和方法调用的顺序,才可以更好地操控程序和代码,尽量避免Xcode不报错又实现不了功能的BUG.从Xcode的线程函数调用栈可以看到一些方法调用顺序. 0 从程序启动开始到vie

iOS程序启动原理是什么

当刚开始学习ios开发的时候,我们学会做的第一件事就是创建一个新的项目.每次我都会好奇,为什么我们选择创建一个Single View Application项目的时候,什么代码都不用敲就可以在模拟器上运行程序了.要解答这个问题需要明白一点程序的启动原理,看完之后你就会明白. 首先,建立一个Single View Application项目以方便我们的研究.可以明确的是,不论是C语言还是Objiective-C语言程序,程序运行的入口都是main函数.所以我们从main函数开始入手. 创建新项目

设置程序启动时加载的storyboard

这个设置表明:程序启动时会加载Main.storyboard

app程序启动流程

1.执行main函数 2.执行UIApplication main函数 3.创建UIApplication对象(注意UIApplication是一个单例对象,[UIApplication sharedApplication]) 4.创建UIApplication代理 5.开启主运行循环(Runloop,)注意主运行循环是由系统开启,子运行循环需要手动开启 6.加载infor.plist文件配置信息,判断是否有mainstorybord,如果有就去加载mainstorybord 7.应用程序启动完

[ios 程序启动与运转] - RunLoop个人小结

学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等.其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属性和方法作为接口,是让我们在给定的方法里写代码实现自定义功能,做出各种各样的应用.这些方法的调用顺序最为关键,熟悉了程序运转和方法调用的顺序,才可以更好地操控程序和代码,尽量避免Xcode不报错又实现不了功能的BUG.从Xcode的线程函数调用栈可以看到一些方法调用顺序. --零--从程序启动开始到

五、程序启动的完整过程

程序启动的完整过程: 1.先执行main函数,main内部会调用UIApplicationMain函数,该函数的声明如下: int UIApplicationMain(int argc, char argv[], NSString principalClassName, NSString *delegateClassName). argc.argv:标准main函数的参数,直接传递给UIApplicationMain进行相关处理即可 principalClassName:指定应用程序类,该类必须