DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (27a812186ff4)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
#!/bin/sh
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Treats the arguments as a command that is to be forked and observed;
# e.g.,
#
#   watch.sh ./mozilla -f bloaturls.txt
#
# Periodically snap-shots the virtual memory info of the process, and
# dumps the output to ``watch.out''

# Clear the output file
OUTPUT_FILE=watch.out
INTERVAL=10

while [ $# -gt 0 ]; do
    case "$1" in
    -o) OUTPUT_FILE=$2
        shift 2
        ;;
    -i) INTERVAL=$2
        shift 2
        ;;
    *)  break
        ;;
    esac
done

rm -f ${OUTPUT_FILE}

echo "vmsize vmexe vmlib vmdata vmstk vmrss" > ${OUTPUT_FILE}

# treat the arguments as the command to execute
$* &

# remember the process ID
PID=$!

while [ -e /proc/${PID} ]; do
    cat /proc/${PID}/status |\
    awk '$1=="VmSize:" { vmsize = $2; }
$1=="VmData:" { vmdata = $2; }
$1=="VmStk:" { vmstk = $2; }
$1=="VmExe:" { vmexe = $2; }
$1=="VmLib:" { vmlib = $2; }
$1=="VmRSS:" { vmrss = $2; }
END { print vmsize, vmexe, vmlib, vmdata, vmstk, vmrss; }' >> ${OUTPUT_FILE}
    sleep ${INTERVAL}
done