memory-leaks - 为什么 Valgrind 会检测 Dbus 应用程序中的内存泄漏?
问题描述
我正在使用 Dbus 进行进程间通信。我正在使用 dbus_connection_send_with_reply_and_block 通过 dbus 发送数据,而对于阅读,我正在使用 dbus_connection_read_write(connection, 0)。两者都在单独的线程中运行。
我们在 valgrind 中遇到内存泄漏,如下所述:
==16199== 792 (368 direct, 424 indirect) bytes in 2 blocks are definitely lost in loss record 75 of 78
==16199== at 0x484AC14: calloc (vg_replace_malloc.c:760)
==16199== by 0x4E05FBB: dbus_malloc0 (in /lib/libdbus-1.so.3)
==16199== by 0x4DEC867: dbus_message_new_empty_header (in /lib/libdbus-1.so.3)
==16199== by 0x4DF1613: _dbus_message_loader_queue_messages (in /lib/libdbus-1.so.3)
==16199== by 0x4DFDE5B: _dbus_transport_get_dispatch_status (in /lib/libdbus-1.so.3)
==16199== by 0x4DFDF37: _dbus_transport_queue_messages (in /lib/libdbus-1.so.3)
==16199== by 0x4DFF6CF: do_reading (in /lib/libdbus-1.so.3)
==16199== by 0x4DFFCEF: socket_do_iteration (in /lib/libdbus-1.so.3)
==16199== by 0x4DFDBCB: _dbus_transport_do_iteration (in /lib/libdbus-1.so.3)
==16199== by 0x4DDBA77: _dbus_connection_do_iteration_unlocked (in /lib/libdbus-1.so.3)
==16199== by 0x4DDD10F: _dbus_connection_block_pending_call (in /lib/libdbus-1.so.3)
==16199== by 0x4DF520F: dbus_pending_call_block (in /lib/libdbus-1.so.3).
这种内存泄漏在一段时间内是递增的。请有人帮我解决这个泄漏。
解决方案
推荐阅读
- ios - 在 Swift 中为 NSString 处理 nil 值
- javascript - 更有效地重写大量文本的方法?
- javascript - 错误消息无法在“节点”上执行“appendChild”:参数 1 不是“节点”类型
- react-native - 用 Jest 测试 Expo Constant,Jest 遇到了一个意外的令牌
- javascript - 如何使用 JavaScript/React 在hangman 中保存单词的进度?
- php - 计算工作日到某个日期 PHP
- windows-ce - WinCE 5.0 的 CreateSemaphore 库
- python - 将时间格式从 1/1/1900 10:00:00 PM 更改为 10:00 PM
- php - 将关联的 PHP 数组插入 mysql,而无需输入每个单独的插入名称和值
- c# - StreamReader 构造函数在 UNC 前加上工作目录