#!/bin/sh # # Shell script to analyze the xpcom log file # # Usage: xpcom-log-analize.sh [] > xpcom-log.html # # You can generate the xpcom log file using: # setenv NSPR_LOG_MODULES nsComponentManager:5 # setenv NSPR_LOG_FILE xpcom.log # ./mozilla # # # Contributors: # Suresh Duddi # Vamsee Nalagandla # if [ $# -gt 0 ] then logfile=$1 else logfile=xpcom.log fi # make sure we got the logfile if [ ! -f $logfile ] then echo "Error: Cannot find xpcom logfile $logfile" exit -1 fi echo "" echo "" echo "XPCOM Log analysis dated:" date echo "" echo "

" echo "XPCOM Log analysis dated:" date echo "

" # ======================================================================== # Performance analysis # ======================================================================== echo "

Performance Analysis

" # Number of dlls loaded n=`grep -i ': loading' ${logfile} | wc -l` echo "

Dlls Loaded : $n

" echo "
"
grep ': loading' $logfile
echo "
" # Objects created with a histogram n=`grep -i 'createinstance.*succeeded' ${logfile} | wc -l` echo "

Objects created : $n

" echo "
"
grep -i 'createinstance.*succeeded' ${logfile} | sort | uniq -c | sort -nr
echo "
" # Number of RegisterFactory n=`grep 'RegisterFactory' $logfile | wc -l` echo "

Factory registrations : $n

" echo "
"
grep 'RegisterFactory' $logfile
echo "
" # Number of RegisterComponentCommon. # XXX Order them by dllname n=`grep 'RegisterComponentCommon({' $logfile | wc -l` echo "

Component Registrations : $n

" echo "
"
grep 'RegisterComponentCommon({' $logfile
echo "
" # Number of succeeded calls to ContractIDToClassID() with histogram n=`grep -i 'contractidtoclassid.*}' $logfile | wc -l` echo "

Count of succeeded ContractIDToClassID() : $n

" echo "
"
grep -i 'contractidtoclassid.*}' $logfile | sort | uniq -c | sort -nr
echo "
" # ======================================================================== # Error analysis # ======================================================================== echo "

Error Analysis

" # CreateInstance() FAILED n=`grep 'CreateInstance.*FAILED' $logfile | wc -l` echo "

Failed CreateInstance() : $n

" echo "
"
grep 'CreateInstance.*FAILED' $logfile
echo "
" # ContractIDToClassID() FAILED with a histogram n=`grep 'ContractIDToClassID.*FAILED' $logfile | wc -l` echo "

Failed ContractIDToClassID() : $n

" echo "
"
grep 'ContractIDToClassID.*FAILED' $logfile | sort | uniq -c | sort -nr
echo "
" # # Cleanup echo ""