You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Valgrind/Callgrind中--toggle-collect选项无法正常工作的问题咨询

问题原因分析

1. 函数名完全不匹配

你命令中指定的--toggle-collect=fun,但示例代码里的目标函数是fun1,Callgrind会严格匹配符号表中的函数名,名称不一致直接导致规则无法触发。

2. 错误的参数格式

--toggle-collect只需要传入纯函数名,不需要添加返回类型(比如void fun、int main这种写法是错误的)。Callgrind识别的是编译后符号表中的函数标识,返回类型不属于符号名的一部分,多余的前缀会让匹配彻底失效。

3. 额外注意事项(可能的隐性问题)

如果修正以上两点后仍然无效,需要检查编译选项:

  • 不要使用-O2及以上优化级别:高优化可能会将函数内联,导致符号表中无法找到目标函数;
  • 不要使用-strip或-s参数:这会剥离符号表,Callgrind无法识别任何函数名。

正确命令示例

valgrind --tool=callgrind --callgrind-out-file=callgrind.out --toggle-collect=fun1 -v a.out

内容的提问来源于stack exchange,提问作者ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:22:37