
Dump分析:空指针访问二,重复释放堆内存二
示例dump分析:空指针访问二 代码 分析步骤 !analyze -v 信息1 RAX 寄存器中存储了地址 0x00000000,导致 mov dword ptr [rax], 2Ah 指令尝试向内存地址 0 写入值 0x2A(十进制 42)时触发异常 在 Windows 系统中...
示例dump分析:空指针访问二 代码 分析步骤 !analyze -v 信息1 RAX 寄存器中存储了地址 0x00000000,导致 mov dword ptr [rax], 2Ah 指令尝试向内存地址 0 写入值 0x2A(十进制 42)时触发异常 在 Windows 系统中...
示例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之后,虽然点击上图的应用确认之...
堆内存相关 定义和特点 堆内存是程序运行时动态分配的内存区域,由开发者手动申请和释放(如C中的malloc/free、C++的new/delete) 具有以下特点 生命周期长:内存存活周期由开发者控制,不随函数调用结束而释放 空间大且灵活:理论上可分配至系统可用内存上限,适合存储...
!analyze -v 概述 用于 自动分析当前异常或崩溃的根本原因,并输出详细的诊断信息 它是调试程序崩溃、蓝屏(BSOD)或未处理异常的首选工具 功能 分析当前异常类型(如访问违规、除零错误等),定位触发异常的代码位置 提供异常上下文、调用栈、寄存器状态、可能原因及建议操作 ...
Windows相关 创建Mutex的有无Global的影响 概述 Windows 内核对象(如 Mutex、Event、Semaphore)的命名规则决定了它们的可见范围: 适用场景:跨会话(如服务进程与用户进程)、跨用户或系统级同步 加了Global\ 表示该对象位于 全局内核...
示例dump分析:未捕获异常 代码 分析步骤 使用!analyze -v 看到异常代码是e06d7363 对应着CPP_EH_EXCEPTION 触发场景一般为,C++ 托管扩展(/clr)中的异常 使用.exr -1查看异常记录 使用kn查看栈 可以看到是28行Crash函数里...
LCR 023 相交链表 Question 和160题一样 Ans1 Ans2 3263 将双链表转为数组1 Question Ans 效率一般 3063 链表频率 Question Ans1 我的版本,使用map来完成,效率一般 Ans2 优化ans1,明显缩短了执行时间 30...
概述 为什么需要 WebSocket HTTP 的局限性: 传统 HTTP 是无状态、短连接的协议,客户端必须主动发起请求才能获取数据,无法实现服务端主动推送数据 实时性需求: 在线聊天、实时游戏、金融行情等场景需要双向、低延迟的通信,WebSocket 应运而生 WebSock...
概述 QUIC(Quick UDP Internet Connections)是一种基于 UDP 的传输层协议,由 Google 于 2012 年提出,旨在解决 TCP 和 TLS 的性能瓶颈,提供更快的连接建立、更低的延迟和更强的可靠性 2018 年,QUIC 被标准化为 IE...