SuperAPI AI 工具集

debugging

测试与质量

查看项目

更新于 10-16 09:51

技能介绍

用途:作为 C++ 调试与错误分析的生产级开发技能,围绕“复现—隔离—插桩—分析—修复—验证”的系统化工作流,帮助定位崩溃与内存、并发问题。

主要能力:

  1. 调试器:GDB 的编译(g++ -g -O0 program.cpp -o program)、启动、core dump 分析、断点、条件断点、变量与栈检查、内存查看、监视点、异常捕获、GDB 脚本;LLDB 的启动、附加进程、断点、执行控制、表达式求值、栈与监视点。
  2. Sanitizer:AddressSanitizer(-fsanitize=address)、UndefinedBehaviorSanitizer(-fsanitize=undefined)、ThreadSanitizer(-fsanitize=thread),以及通过 CMake 的 add_compile_options / add_link_options 组合启用。
  3. Valgrind:内存泄漏检测(--leak-check=full)、Memcheck、Cachegrind 缓存分析。
  4. 常见问题诊断表与决策树:段错误、内存泄漏、缓冲区溢出、use-after-free、数据竞争、死锁、整数溢出、空指针解引用、栈溢出,并给出主/备工具。
  5. 调试构建配置与 C++20 调试日志模式、基于 gtest 的调试测试模板。

使用方式:按工作流先确认可复现性,再最小化隔离,使用调试器或 Sanitizer 插桩观察,分析根因后修复并验证测试。常用快速命令包括 ulimit -c unlimited 获取 core dump,gdb -batch -ex "bt" ./program core 获取栈回溯,MALLOC_CHECK_=3 ./program 快速检查内存问题。

适用场景:C++ 程序崩溃定位、内存错误排查、并发缺陷诊断、性能与缓存分析、调试构建与 CI 中的 Sanitizer 集成。

限制:资料未提供安装方法、收费与价格、平台支持范围及具体效果数据;上述工具的实际可用性取决于本地编译器和环境配置。