clang - ASAN 不报告 glib 的 GPtrArray 相关函数的内存泄漏
问题描述
我发现glib的相关功能ASAN
没有报告内存泄漏。例如: GPtrArray
$ cat test_asan.c
#include <glib.h>
int main()
{
GPtrArray *gparray = g_ptr_array_new_with_free_func(g_free);
g_ptr_array_add(gparray, g_strdup("--"));
}
构建并运行这个文件:
$ clang -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fsanitize=address -g test_asan.c -o test_asan -lglib-2.0
$ ./test_asan
$
没有任何报道。但实际上,上面的程序忘记g_ptr_array_free (gparray, TRUE);
在函数结束时main
调用。
任何人都可以对这种行为做出一些解释吗?还是我错过了什么?
解决方案
推荐阅读
- django - 使用 Django 下载带有页眉和页脚的 PDF
- java - Appium 测试用例抛出异常
- r - 根据列中的字符值删除数据框中的重复行之一
- android - 如何创建与 Room 一起使用的 sqlite 视图?
- javascript - 使用 es6 模块和 webpack 导入 momentjs 无法分配给只读属性
- ios - 如何知道浏览器中的按钮点击动作
- google-calendar-api - 允许所有人(公众)在谷歌日历中创建活动
- html - HTML标签末尾的文本的xpath
- sql - MSSQL中转换Datetime-varchar的错误
- c# - 没有控制器的依赖注入