如何在Valgrind上设置分析的开始和结束

时间:2015-03-20 04:32:31

标签: c++ valgrind

要在valgrind上创建配置文件转储,请执行以下操作:

valgrind --tool = callgrind program [program_options]

[来自http://valgrind.org/docs/manual/cl-manual.html]

我想在一些源文件中设置分析的开始和结束。例如

启动main.cpp:30 停止main.cpp:44

我认为这在Android上使用此技术进行了分析。这对Valgrind来说可能吗?

1 个答案:

答案 0 :(得分:1)

根据参考手册http://valgrind.org/docs/manual/cl-manual.html#cl-manual.basics,您至少可以通过自己的客户请求开始和停止分析:

  

如果要分析的程序部分位于运行中的某个位置,则在没有任何分析的情况下快进到此部分是有益的,然后启用分析。这是通过在执行感兴趣的代码段之前的shell:callgrind_control -i中使用命令行选项--instr-atstart = no和running来实现的。要准确指定应开始分析的代码位置,请使用客户端请求CALLGRIND_START_INSTRUMENTATION。

http://valgrind.org/docs/manual/cl-manual.html#cr.start-instr

  

CALLGRIND_START_INSTRUMENTATION   如果尚未启用,则启动完整的Callgrind检测。完成高速缓存模拟后,这将刷新模拟高速缓存并导致人工高速缓存预热阶段之后出现高速缓存未命中,这在现实中是不会发生的。另见选项--instr-atstart。

     

CALLGRIND_STOP_INSTRUMENTATION   如果尚未禁用,则停止完整的Callgrind检测。这会刷新Valgrinds翻译缓存,之后不再进行额外的检测:它有效地以与Nulgrind相同的速度运行,即最小的减速。使用它来加速Callgrind运行以获取不感兴趣的代码部分。使用CALLGRIND_START_INSTRUMENTATION再次启用检测。另见选项--instr-atstart。