
Dump分析:重复释放堆内存,死锁
示例dump分析:重复释放同一堆内存 代码 int main() { init_breakpad(); int* p = new int(42); delete p; delete p; // 重复释放同一内存 st...
示例dump分析:重复释放同一堆内存 代码 int main() { init_breakpad(); int* p = new int(42); delete p; delete p; // 重复释放同一内存 st...
高效调试 Dump 的通用步骤与方法 准备工作 确保符号文件(.pdb)可用 符号文件必须与崩溃时的程序版本完全一致(编译时间、代码、优化选项一致) 收集必要文件: MiniDump 文件(.dmp) 崩溃时的可执行...
相关 特性 静态库 (.lib) 动态库 (.dll) 编译时 代码直接嵌入可执行文件 代码独立,运行时加载 文件大小 可执行文件较大 可执行文件较小 部署难度 无需额外文件 需要附带 .dll 文件 更新维护 需重...
拉代码 开启VPN 用cmd设置 git config --global --unset http.proxy git config --global --unset https.proxy git config -...
概述 AddressSanitizer(ASan)最初由 Google 开发并开源,是 LLVM/Clang 编译器工具链的一部分 它的核心目标是检测内存错误(如缓冲区溢出、释放后使用等),并通过 影子内存(Shad...
thread相关 创建线程 使用 std::thread 构造函数创建线程,需传递一个可调用对象(函数、Lambda、函数对象等) #include <iostream> #include <thr...
关于auto推导 关于t最后推导出的类型 auto 的默认类型推导规则会 忽略引用,直接推导出值的类型 函数 test() 返回的是 std::string&(引用),但 auto t = test(); 会...
用户模式同步 Interlocked 系列函数 原理 通过 CPU 原子指令(如 LOCK XCHG)直接操作内存,无需进入内核态 场景 简单计数器(如引用计数) 无锁数据结构(如无锁队列) 特点 性能极高(无内核切...
Windows相关 消息队列 PostMessage 将消息异步发送到指定窗口的消息队列 目标窗口可以是同一进程或不同进程的窗口 只要发送方持有目标窗口的有效句柄(HWND),即可跨进程发送消息 场景: 例如通知其他...