valgrind - 更多 Memcheck 上下文行
问题描述
在程序运行的最后,“leak check full”“show leak kinds all”以这样的部分的形式显示了一些泄漏事件,仅作为示例:
[...]
==12522==
==12522== x bytes in 1 blocks are still reachable in loss record y of z
==12522== at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==12522== by 0x42350D: whatever_1 (whatever_1.c:3401)
==12522== by 0x4225B9: whatever_2 (whatever_2.c:2948)
==12522== by 0x41D93E: whatever_3 (whatever_3.c:1185)
==12522== by 0x423A07: whatever_4 (whatever_4.c:1370)
==12522== by 0x4294A4: whatever_5 (whatever_5.y:1413)
==12522== by 0x403998: whatever_6 (whatever_6.c:205)
==12522== by 0x4038AC: whatever_7 (whatever_7.c:180)
==12522== by 0x4036AF: whatever_8 (whatever_8.c:143)
==12522== by 0x413C7F: whatever_test_0 (whatever_9.c:53)
==12522== by 0x413F92: whatever_tests (whatever_10.c:177)
==12522== by 0x45AD69: run_tests (whatever_11.c:153)
==12522==
[...]
最顶层的范围是main
,并且在多个块中,就像这个一样,有足够的深度,调用堆栈不会显示到main
. 在其他事件中,有足够的上下文来显示每个级别。
我已经看到,在这个主机中,这里只显示了 12 个级别(vg_replace_malloc.c
然后是我的 11 个用户级别)。
这可以配置为显示超过 12 个级别吗?
我读过 Valgrind 的论点,Memcheck 的论点,增加了冗长,但没有成功。
解决方案
使用选项 --num-callers (默认值为 12):
--num-callers=<number> show <number> callers in stack traces [12]
推荐阅读
- webgl - WebGL 模型框架和世界框架的关系
- android - Android:使用 Gmail api 从服务中读取 Gmail 邮件正文
- c++ - Qt::QueuedConnection 不调用接收线程事件循环,
- watchkit - 无法在独立的 watchOS 应用上使用 Apple 登录
- html - 组件从其他组件继承 CSS
- excel - 在 Excel 中,如何使用 VBA 仅复制具有特定顺序的所需单元格
- html - 如何摆脱标题菜单项
- excel - Brightway2 Excel 数据库导入问题 .write_database() ecoinvent
- node.js - AWS lambda 实例在 xstate 调用承诺时关闭
- reactjs - 如何使用引导程序和反应在另一列中显示组件数据