没有银弹之:基于 eBPF 的 C/C++ 内存泄漏分析

187 天前
 xuelang

对于 C/C++ 程序员来说,内存泄露问题是一个老生常谈的问题。排查内存泄露的方法有很多,比如使用 valgrind 、gdb 、asan 、tsan 等工具,但是这些工具都有各自的局限性,比如 valgrind 会使程序运行速度变慢,gdb 需要了解代码并且手动打断点,asan 和 tsan 需要重新编译程序。对于比较复杂,并且在运行中的服务来说,这些方法都不是很方便。

好在有了 eBPF ,我们可以使用它来分析内存泄露问题,不需要重新编译程序,对程序运行速度的影响也很小。eBPF 的强大有目共睹,不过 eBPF 也不是银弹,用来分析内存泄露也还是有很多问题需要解决,本文接下来就来探讨一下基于 eBPF 检测会遇到的常见问题。


深入理解基于 eBPF 的 C/C++ 内存泄漏分析

  1. 内存泄露模拟
  2. memleak 分析
    • 调用链不完整
  3. tcmalloc 泄露分析
    • 深入工具实现
    • GDB 堆栈跟踪
  4. 正常内存泄露分析
  5. 内存火焰图可视化
  6. 默认开启帧指针
  7. 参考文章

975 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/989969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX