blob: 5b89f18591c4a5f43dfc1afa18be139a84b934d3 [file] [log] [blame]
#!/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