调试
文章平均质量分 78
ปรัชญา แค้วคำมูล
平时的心魔,是关键时刻带你走出泥潭的神明。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
当回调函数在Dump中“消失”:深入挖掘内存损坏的幽灵
摘要:C/C++开发中,内存损坏导致的崩溃dump分析极具挑战性。本文通过一个回调函数地址异常(0x41414141)的案例,揭示了悬挂指针访问的多重危害:从立即崩溃、数据损坏到堆元数据破坏。深入剖析了虚函数表指针被覆盖的机制,展示了如何使用GDB内存断点、AddressSanitizer等工具定位问题根源。文章还提供了防御性编程的最佳实践,包括使用智能指针、边界检查和内存canary检测等。通过系统化的dump分析流程,开发者可以准确识别内存损坏特征,将难以捉摸的"幽灵问题"转化为可修原创 2025-11-16 11:52:25 · 657 阅读 · 0 评论 -
Release 与 Debug 的区别及 Release 版本调试指南
摘要: Debug与Release模式在软件开发中存在显著差异:Debug关闭优化、保留调试信息,便于调试但性能差;Release开启优化、去除冗余检查,性能好但调试困难。Release版本易因未初始化变量、越界访问等问题出现Bug,尤其在线程竞争下更明显。调试Release版本需保留符号信息(如.pdb文件),临时禁用优化,利用日志、Dump文件及工具(如VS/WinDbg/gdb)定位问题。开发者应兼顾Debug阶段的严格测试与Release版本的符号保留,以快速修复线上问题。原创 2025-08-27 17:58:37 · 1094 阅读 · 0 评论 -
WinDbg调试技巧:MiniDump缺失哪些数据?如何正确生成内存转储
该提示表示WinDbg加载的小型转储文件仅包含有限数据:寄存器状态、线程调用栈和部分相关内存页,缺少完整进程内存(如堆、全局变量等)。这导致依赖全局内存的命令(如!locks、!heap)不可用,但基础分析(线程栈、异常代码检查)仍可行。若需调试锁/死锁问题,建议生成完整内存转储(FullMemoryDump)或包含更多数据的扩展MiniDump(使用/mhi和/u参数)。该情况常见于默认生成的MiniDumpNormal类型转储,适用于初步崩溃分析。原创 2025-06-19 16:27:51 · 400 阅读 · 0 评论 -
崩溃堆栈信息是??的问题排查
崩溃堆栈信息是??的问题排查原创 2024-09-14 16:05:42 · 454 阅读 · 0 评论 -
本地搭建ros2环境步骤(x86_64架构)
本地搭建ros2环境步骤(x86_64架构)原创 2024-07-19 19:09:18 · 1282 阅读 · 0 评论 -
windows10搭建Fast-DDS环境,辅助调试
windows10搭建Fast-DDS环境,辅助调试原创 2024-05-20 17:51:34 · 754 阅读 · 0 评论
分享