#!/pkg/bin/ksh
#
# Collect debug information on the supplied pid/jobid 
# 
#  Copyright (c) 2006 by cisco Systems, Inc.
#  All rights reserved.
#

usage="jobid_to_trace pid_to_trace nodeid_of_pid nodename take_core_dump_of_pid calling_process calling_function line_number calling_pid"

jobid=$1
trace_pid=$2
trace_nid=$3
nodename=$4
take_core_dump=$5
calling_process=$6
function=$7
line=$8
calling_pid=$9

DEV=/dev/shmem
DEBUG_DIR=$DEV/rds_debug
DEBUG_FILE="$DEBUG_DIR/debug_rds.$$"

/pkg/bin/sysmgr_log "$0 invoked by pid $calling_pid($calling_process). Output is in $DEBUG_FILE" 

# most of what goes on here is expensive. Set our priority down.
setprio 10
# Generate the log info
(
echo "$0 invoked by $calling_process. 
Called by $function at line $line at `iosclock -d 0x0`." 

echo "ARGS are $1 $2 $3 $4 $5 $6 $7 $8 $9 "

echo "----------------------------------------------------------------"
echo "Output pidin -p $trace_pid -n $nodename"
pidin -p $trace_pid -n $nodename
echo "----------------------------------------------------------------"
echo "Output of attach_process -i1 -p $trace_pid -n $trace_nid:"
attach_process -i1 -p $trace_pid -n $trace_nid
echo "----------------------------------------------------------------"
echo "Output pidin -p $calling_pid"
pidin -p $calling_pid
echo "----------------------------------------------------------------"
echo "Output of attach_process -i1 -p $calling_pid"
attach_process -i1 -p $calling_pid
echo "----------------------------------------------------------------"
#if [ $take_core_dump != 0 ]
#then
#echo "Taking running coredump of pid=$trace_pid jobid=$jobid tracenid=$trace_nid / $nodename"
#dumper_gen -o running -j $jobid -n $trace_nid
#echo "----------------------------------------------------------------"
#fi
echo "Exiting at  at `iosclock -d 0x0`."

) > $DEBUG_FILE 2>&1
