#!/bin/bash # Copyright 2016 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Collects the pprof tree and top outputs. # All the local_cwp symbolized profiles are taken from the # local_cwp_results_path. # The pprof top output is stored in the pprof_top_results_path and the pprof # tree output is stored in the pprof_tree_results_path. set -e if [ "$#" -ne 3 ]; then echo "USAGE: collect_pprof_data.sh local_cwp_results_path " \ "pprof_top_results_path pprof_tree_results_path" exit 1 fi readonly LOCAL_CWP_RESULTS_PATH=$1 readonly PPROF_TOP_RESULTS_PATH=$2 readonly PPROF_TREE_RESULTS_PATH=$3 readonly SYMBOLIZED_PROFILES=`ls $LOCAL_CWP_RESULTS_PATH` for symbolized_profile in "${SYMBOLIZED_PROFILES[@]}" do pprof --top "$LOCAL_CWP_RESULTS_PATH/${symbolized_profile}" > \ "$PPROF_TOP_RESULTS_PATH/${symbolized_profile}.pprof" if [ $? -ne 0 ]; then echo "Failed to extract the pprof top output for the $symbolized_profile." continue fi pprof --tree "$LOCAL_CWP_RESULTS_PATH/${symbolized_profile}" > \ "$PPROF_TREE_RESULTS_PATH/${symbolized_profile}.pprof" if [ $? -ne 0 ]; then echo "Failed to extract the pprof tree output for the " \ "$symbolized_profile." continue fi done