Win32 API功能封装
+ -

应用程序等待被调试工具调试

2024-09-11 2 0

应用程序可以通过传递参数来改变软件的运行状态。但有的时候我们需要被调试,就需要使用调试工具,如wIndbg。
改变软件为调试状态时,可以通过检测传递到的参数来确定,但这时可能需要调试器来配合,所以可以通过如下的代码来等待调试器被附加上。

BOOL  IsNeedDbg = ParseCommandLines((struct _GAPP *)v8);
if ( IsNeedDbg >= 0 )
{
    while (!IsDebuggerPresent())
    {
     MessageBoxW(
        NULL,
        L"/WaitForDebugger switch detected. Please attach a debugger to continue...",
        L"SetupHost.exe",
        NULL);    
    }

    DebugBreak();
}

软件是否正在被调试可通过IsDebuggerPresent函数来判断。

0 篇笔记 写笔记

设置Windows调试/测试模式
以管理员的方式在命令提示符或批处理运行以下命令bcdedit /set debug onbcdedit /set testsigning onbcdedit /set loadoptions ddisable_integrity_checkspause成功后可以执行msconfig在引导选......
VMware虚拟机双机调试及配置
使用VMware进行双机调试时,需要首先安装虚拟机VMware,安装完虚拟机后就可以安装目标被调试机,通过建立虚拟管道串口来进行主机和调试机之间的联调。1.打开虚拟机后,点击创建新的虚拟机按钮。2.在使用向导过程中,我们选择自定义(高级)选项进行配置。3.虚拟机兼容性,我们采用默认选项,然后点......
KDNET网络双机调试配置
1394传输可用于 Windows 10 版本1607及更早版本。 它在更高版本的 Windows 中不可用。 应使用以太网将项目转换为其他传输,如 KDNET。 有关该传输的详细信息,请参阅自动设置 KDNET 网络内核调试。适用于 Windows 的调试工具支持通过网络进行内核调试。 本主......
ASIO 示例代码调试准备
ASIO提供的示例代码在进行调试前,需要做以下几个步骤:第一,就是按上节的要求将编译好的asiosample.dll通过命令行进行注册,这里使用的命令是REGSVR32 asiosample.dll当然,这个注册分为32位和DLL和64位的DLL,所以会有差别。本人在现有的机器使用的是32位编程......
串口过滤驱动调试过程蓝屏NO_MORE_IRP_STACK_LOCATIONS(35)问题分析
最近在搞一个串口的过滤驱动程序,在调度过程中报了一个蓝屏问题。NO_MORE_IRP_STACK_LOCATIONS (35)A higher level driver has attempted to call a lower level driver throughthe IoCallDr......
应用程序等待被调试工具调试
应用程序可以通过传递参数来改变软件的运行状态。但有的时候我们需要被调试,就需要使用调试工具,如wIndbg。改变软件为调试状态时,可以通过检测传递到的参数来确定,但这时可能需要调试器来配合,所以可以通过如下的代码来等待调试器被附加上。BOOL IsNeedDbg = ParseCommandLi......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!