


Windows机制:物理内存、虚拟内存
堆内存相关 定义和特点 堆内存是程序运行时动态分配的内存区域,由开发者手动申请和释放(如C中的malloc/free、C++的new/delete) 具有以下特点 生命周期长:内存存活周期由开发者控制,不随函数调用结束而释放 空间大且灵活:理论上可分配至系统可用内存上限,适合存储...

Dump分析:未捕获的异常,查看内存相关命令
示例dump分析:未捕获异常 代码 分析步骤 使用!analyze -v 看到异常代码是e06d7363 对应着CPP_EH_EXCEPTION 触发场景一般为,C++ 托管扩展(/clr)中的异常 使用.exr -1查看异常记录 使用kn查看栈 可以看到是28行Crash函数里...

Windows 核心编程 _ 用户模式:线程同步三
Slim读写锁 概述 目的和关键段一样,对一个资源进行保护,不让其他线程访问它。 和关键段不同的是,SRWLock允许我们区分那些想要读取资源的值的线程(读取者线程)以及想要更新资源的值的线程(写入者线程) 关于读写锁的功能 让所有的读取者线程同一时刻访问共享资源应该是可行的,因...

Windows 核心编程 _ 内核对象:线程同步二
可等待的计时器内核对象 概述 可指定的计时器内核对象会在某个指定的时间触发,或者每隔一段时间触发一次,通常被用来在某个时间执行一些操作。 函数 第二个参数表示将要创建的是一个手动重置计时器还是一个自动重置计时器。 当手动重置计时器被触发的时候,正在等待该计时器的所有线程都会变成可...

Windows动态库(DLL)详细学习:一
概述 DllMain 是 Windows 动态链接库(DLL)的入口函数,类似于可执行程序的 main 函数 它在以下四种情况下会被系统自动调用: DLL 被加载到进程内存 DLL 被卸载 进程创建新线程 线程退出 参数 保留参数 lpReserved: DLL_PROCESS_...

Windows机制: 窗口及渲染相关
程序A盖着程序B上面 关于鼠标的消息响应问题 为什么点击公共区域,响应的是上面那个 Windows操作系统按照Z顺序处理窗口,这意味着最上层的窗口优先接收输入事件 操作系统使用Hit Testing方法,根据点击坐标判断哪个窗口包含该坐标 关于未被遮盖部分的显示问题 概述 在Wi...

Windows进程通信相关
Windows相关 消息队列 PostMessage 将消息异步发送到指定窗口的消息队列 目标窗口可以是同一进程或不同进程的窗口 只要发送方持有目标窗口的有效句柄(HWND),即可跨进程发送消息 场景: 例如通知其他进程的窗口更新界面或执行特定操作 例如结合 WM_COPYDAT...

Dump分析:空指针访问二,重复释放堆内存二
示例dump分析:空指针访问二 代码 分析步骤 !analyze -v 信息1 RAX 寄存器中存储了地址 0x00000000,导致 mov dword ptr [rax], 2Ah 指令尝试向内存地址 0 写入值 0x2A(十进制 42)时触发异常 在 Windows 系统中...

Windows 核心编程 _ 进程五
终止进程 方法 主线程的入口点函数返回。 进程中的一个线程调用ExitProcess函数(要避免这种方式)。 另一个进程中的线程调用TerminateProcess函数(要避免这种方式)。 进程中的所有线程都“自然死亡”(几乎从来不会发生)。 入口点函数返回 让主线程的入口点函数...
搜索当前分类