C/C++

内存泄漏排查方法

工具

AddressSanitizer

  • GCC 4.9 以上支持
  • -fsanitize=address选项编译和链接你的程序。
  • -fno-omit-frame-pointer编译,以得到更容易理解stack trace
  • 可选择-O1或者更高的优化级别编译

https://www.jianshu.com/p/3a2df9b

gcc -fsanitize=address -fno-omit-frame-pointer -O1 -g use-after-free.c -o use-after-free

strace

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.html

跟踪进程执行时的系统调用和所接收的信号。

tcmalloc

aot wasm compiler 触发了 tcmalloc 在不停的保存上下文信息,导致内存疯狂增长。