windows服务程序调试方法 - 启动直接进入调试

参考文章:

1、http://www.abin.cn/?p=263

2、https://support.microsoft.com/zh-cn/kb/824344/zh-cn

Step 1:
    方法一:使用WinDBG的全局标志设置命令gflags.exe设置,在对话框中的Image File设置要调试的服务名称,Debugger选择设置调试器的路径;  (备注:我在实际操作中,这个地方设置Debugger时出现写注册表错误,卸载360软件解决问题。)

    方法二:使用注册表编辑器,打开注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options ,添加一个主键,名称为要调试的服务名称,如 MyService.exe,在该主键下再新建一个字符串值,名称为“Debugger”,值为调试器路径;

Step 2:

  设置要调试的服务与桌面交互:

  (1)打开“管理工具”,选择“服务”,打开服务管理窗口,选择准备调试的服务名,右击选择“属性”,选择“登录”,勾选“允许服务与桌面交互”;
  
(2)使用注册表编辑器,打开注册表路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \ServiceName(要调试的服务名),选择“Type”,修改其值为:原值 OR 0x00000100(如原值为:0x00000010 OR 0x00000100 =0x00000110);

Step 3:

    设置服务启动超时时间(系统默认为30秒),启动注册表编辑器,打开注册表路径:HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control,新建DWORD值“ServicesPipeTimeout”,其值为欲设置的超时时间,如设置 24小时,则值为86400000毫秒;
Step 4:

    启动服务准备调试,打开“管理工具”,选择“服务”,打开服务管理窗口,选择准备调试的服务名,右击选择“启动”

Step 5:

    启动之后会弹出交互式消息服务窗口, 点击“查看消息”即可直接进入调试;

时间: 2024-07-29 14:55:01

windows服务程序调试方法 - 启动直接进入调试的相关文章

SylixOS的RealEvo-IDE调试方法

1 适用范围 本文档适用于已熟悉SylixOS并且使用RealEvo-IDE进行开发调试的技术工程师. 2 概述 SylixOS 实现了一个功能强大的调试stub,可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件. 按照调试对象的不同,调试手段可分为以下几类: 1.   应用程序调试(App工程) 2.   动态库调试(SharedLib工程) 3.   BSP调试(BSP工程) 4.   内核调试(KernelModule) 按照调试环境的不同,调试手段又可细分为

Android快速调试方法

Android快速调试方法 前言:目前市面上OTT网络机顶盒几乎全部使用Android系统,公司目前是多个人使用一个编译服务器,编译一次Android系统花费时间较长,调试Android某一部分功能时候就不得不编译整个Android系统来调试,严重降低了工作开发效率,巧合之下看到公司大牛写的Android调试方法,放与网络与大家参考学习. 公司网络机顶盒(OTT)盒子使用Amlogic提供的芯片,下面就以amlogic Android系统为例. 1 Uboot快速调试方法 1.1 编译 #! /

linux Ubuntu(Segmentation fault)段错误出现原因及调试方法

  在linux下编译了一个程序,尝试运行的时候出现: Segmentation fault (core dumped) 初步确认为...完全不知道是什么玩意. 于是找度娘了. ---------------------------------------------------------------------------- 出现原因 原来这个东西叫做段错误,就程序运行的时候出现内存错误.有很多原因会导致这样的内存错误,但是应该把这些问题归结于程序的错误,那么程序是出现了什么样的错误了呢,为

移动端开发调试方法总结

作者本人经验浅薄,还望大神批评指教. ? 移动端调试方法总结,移动端调试方法大致有四种:1.chorme的开发者平台调试,2.Fildder 远程调试,3.Chrome Inspect 真机调试,4.wenwire 远程调试 ? 1.chorme 开发者平台(F12) ? ? 这种调试方法是在开发前期最常用的一种手段,如果对chrome开发者平台很熟悉,开发效率那绝对是事半功倍. chrome开发者调试常用的5部分: 1.Elements 调试样式,打入断点 2.NetWork 观察网络请求 3

Windows 下常见的反调试方法

稍稍总结一下在Crack或Rervese中比较常见的一些反调试方法,实现起来也比较简单,之后有写的Demo源码参考,没有太大的难度. ①最简单也是最基础的,Windows提供的API接口:IsDebuggerPresent(),这API实际上就是访问PEB的BeingDebugged标志来判断是否处于调试状态. if (IsDebuggerPresent()) //API接口 { AfxMessageBox(L"检测到调试器"); } else { AfxMessageBox(L&qu

【转】WinDbg调试器:启动程序时自动连接调试器方法

当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options路径下: 第二步:在Image File Execution Options上鼠标右键,新建"项",项名为你要调试的程序,比如 test.exe: 第三步:在项名上,右键,新建字符

delphi服务程序(service)的调试方法

delphi服务程序(service)的调试方法         delphi service 调试 方法一: 1.调试delphi 写的服务程序,有这么一个办法.原来每次都是用attach to process方法,很麻烦.并且按照服务线程的执行线路,可能会停不到想要的断点.笨办法是,在procedure TsvcFrm.ServiceExecute(Sender: TService);中想要下断的语句前加个人定胜天的sleep(20000),但实际上这种办法是主观臆测的.可行,没问题.记得大

eclipse环境下tomcat远程调试方法

前提:Windows环境tomcat是以catalina.bat方式而非Windows服务形式启动(两者所使用的JAVA配置及JVM参数会有差异). 服务器段设置 方法1:修改CATALINA_OPTS 修改 catalina.bat文件,添加:Set  "CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" 参数说明: -Xdebug                 

Linux 下的段错误(Segmentation fault)调试方法

我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的.实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除.但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个内存访问越界的错误谈谈如何快速定位这些"段错误"的语句. 下面将就以下的一个存在段错误的程序介绍几种调试方法: 1 dummy_function (void) 2 { 3 unsig