
Windows机制:物理内存、虚拟内存
堆内存相关 定义和特点 堆内存是程序运行时动态分配的内存区域,由开发者手动申请和释放(如C中的malloc/free、C++的new/delete) 具有以下特点 生命周期长:内存存活周期由开发者控制,不随函数调用结束而释放 空间大且灵活:理论上可分配至系统可用内存上限,适合存储...
堆内存相关 定义和特点 堆内存是程序运行时动态分配的内存区域,由开发者手动申请和释放(如C中的malloc/free、C++的new/delete) 具有以下特点 生命周期长:内存存活周期由开发者控制,不随函数调用结束而释放 空间大且灵活:理论上可分配至系统可用内存上限,适合存储...
程序A盖着程序B上面 关于鼠标的消息响应问题 为什么点击公共区域,响应的是上面那个 Windows操作系统按照Z顺序处理窗口,这意味着最上层的窗口优先接收输入事件 操作系统使用Hit Testing方法,根据点击坐标判断哪个窗口包含该坐标 关于未被遮盖部分的显示问题 概述 在Wi...
概述 Windows 是事件驱动的,事件驱动围绕着消息的产生与处理展开,事件驱动是靠消息循环机制来实现的。也可以理解为消息是一种报告有关事件发生的通知。 消息(Message)指的就是Windows 操作系统发给应用程序的一个通告,它告诉应用程序某个特定的事件发生了。 比如,用户...
概述 DllMain 是 Windows 动态链接库(DLL)的入口函数,类似于可执行程序的 main 函数 它在以下四种情况下会被系统自动调用: DLL 被加载到进程内存 DLL 被卸载 进程创建新线程 线程退出 参数 保留参数 lpReserved: DLL_PROCESS_...
!analyze -v FAULTING_IP 显示发生故障时的指令指针 EXCEPTION_RECORD 显示此崩溃的异常记录 也可以通过.exr查看 BUGCHECK_STR 该名称是错误的名称,错误检查一词实际上表示内核模式崩溃 在用户模式调试中,将显示异常代码 DEFAU...
示例dump分析:空指针访问二 代码 分析步骤 !analyze -v 信息1 RAX 寄存器中存储了地址 0x00000000,导致 mov dword ptr [rax], 2Ah 指令尝试向内存地址 0 写入值 0x2A(十进制 42)时触发异常 在 Windows 系统中...
Windows进程线程模型 进程 概述 Windows中进程是程序执行的实例,包含代码、数据、资源(如内存、文件句柄)以及独立的内存空间 每个进程拥有唯一的进程环境块(PEB),用于维护进程状态和资源信息 进程内核对象(PCB) 由内核管理的不可见数据结构,记录进程优先级、状态(...
示例dump分析:堆内存泄露 代码 分析步骤一 在程序启动时,先用下面命令查看堆的情况 !heap -s !heap -stat -h 1cb0000 分析步骤二 g 让程序跑一会儿 !heap -s 对比发现Commit多了128h !heap -stat -h 1cb0000...
调试堆内存 启用用户堆栈跟踪(User Stack Trace) 方法一 通过 gflags.exe 为目标进程添加堆栈跟踪标志: 方法二: 打开Global Flags,设置如图示: 相关问题 在实践过程中,发现勾选Enable page heap之后,虽然点击上图的应用确认之...
!analyze -v 概述 用于 自动分析当前异常或崩溃的根本原因,并输出详细的诊断信息 它是调试程序崩溃、蓝屏(BSOD)或未处理异常的首选工具 功能 分析当前异常类型(如访问违规、除零错误等),定位触发异常的代码位置 提供异常上下文、调用栈、寄存器状态、可能原因及建议操作 ...
搜索当前分类