SuperAPI AI 工具集

valgrind

通用与其它

查看项目

更新于 10-16 01:31

技能介绍

用途:该技能用于解读 Valgrind Memcheck 输出,辅助 ikigai 项目进行内存调试。

主要能力:

  • 识别 Invalid Read/Write:读写越过缓冲区边界或访问已释放内存,建议检查数组下标、缓冲区大小与释放后使用问题。
  • 识别未初始化值使用:条件跳转或移动依赖未初始化值,建议初始化变量、使用 memset、检查所有代码路径。
  • 识别 Invalid free:重复释放或释放无效指针,建议跟踪所有权,使用 talloc 的层级释放。
  • 分析内存泄漏:definitely lost 为无指针指向的真实泄漏;indirectly lost 为仅通过真实泄漏可达;possibly lost 为存在内部指针,可能是有意为之;still reachable 为退出时仍可访问,通常可接受。

使用方式:

  • 通过检查脚本运行,不要直接运行 make:check-valgrind
  • 直接调用:valgrind --leak-check=full --track-origins=yes ./ikigai
  • 常用选项:--leak-check=full、--track-origins=yes、--show-reachable=yes、--suppressions=file.supp、--gen-suppressions=all
  • 线程调试:valgrind --tool=helgrind ./ikigai,可检测数据竞争、锁顺序违规、POSIX 线程 API 误用。
  • 栈回溯自下而上阅读:main 调用 load_config 调用 parse_json,错误发生在 parse_json。

限制:资料未提供该技能的安装方式、平台、收费信息及完整使用步骤。