Valgrind中?通配符匹配规则及栈帧过滤技术问询
Valgrind抑制规则中
?通配符的匹配逻辑 Valgrind的抑制规则里,通配符遵循标准shell风格的匹配逻辑:
?匹配任意单个字符(必须恰好1个字符,不能为空也不能多匹配)*匹配任意长度的任意字符(包括0个字符的空情况)
你使用obj:???能生效,核心原因是:当Valgrind无法解析栈帧对应的共享对象名时,会固定输出???作为占位符——这正好是3个字符,每个?通配符对应匹配一个占位符里的?字符,所以这条规则精准命中了这个无法识别的对象场景。
如果需要匹配任意未知的共享对象名,用obj:*会更通用,但你的场景里是固定的3字符占位符,所以obj:???刚好适配当前的内存错误栈帧情况。
内容的提问来源于stack exchange,提问作者ABu
相关产品推荐
相关产品推荐

