我自己使用的时候发现有这个问题,async-profiler文档没有找到这个问题的说明
后来翻了一下async-profiler 的代码
在profiler.cpp里面,这两个参数是在excludeTrace
这个函数里用到的
bool Profiler::excludeTrace(FrameName* fn, CallTrace* trace) {
bool checkInclude = fn->hasIncludeList();
bool checkExclude = fn->hasExcludeList();
if (!(checkInclude || checkExclude)) {
return false;
}
for (int i = 0; i < trace->num_frames; i++) {
const char* frame_name = fn->name(trace->frames[i], true);
if (checkExclude && fn->exclude(frame_name)) {
return true;
}
if (checkInclude && fn->include(frame_name)) {
checkInclude = false;
if (!checkExclude) break;
}
}
return checkInclude;
}
这个函数有三个地方调用,分别在dumpCollapsed
,dumpFlameGraph
,dumpText
中