注意事项
- 插桩之后的运行阶段,程序需要正常结束才能正常生成采样文件,直接kill -9 不能正常生成采样文件。
- 如果程序无法正常退出,可以尝试以下方法生成profile。(以mysql为例)
1 2 3 4 5 6
echo "set height 0" > gdb.cmd echo "handle SIGPIPE SIGUSR1 SIGUSR2 SIG36 noprint nostop" >> gdb.cmd echo "call (void)__llvm_profile_write_file()" >> gdb.cmd echo "detach" >> gdb.cmd echo "q" >> gdb.cmd gdb -x gdb.cmd -p `pidof mysql`
- 在使用方法步骤3中merge profile时,如果出现“counter overflow”的错误提示,可以通过增加环境变量LLVM_PROFILE_FILE=$PROFILE_DATA_PATH/code-%p,按照每个进程生成采样文件,减少进程间耦合导致采样异常的问题。
父主题: PGO