Changeset 823
- Timestamp:
- 03/12/13 11:51:16 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_debug/libIGCM_debug.ksh
r785 r823 27 27 typeset DEBUG_debug=${DEBUG_debug:=false} 28 28 29 # Where the stack file containing call tree will be stored. 30 typeset StackFileLocation=${StackFileLocation:=${PWD}} 31 29 32 if ( $DEBUG_debug ) ; then 30 if [ -f stack ] ;33 if [ -f ${StackFileLocation}/stack ] ; 31 34 then 32 echo "Stack of an libIGCM job :" >> stack35 echo "Stack of an libIGCM job :" >> ${StackFileLocation}/stack 33 36 else 34 echo "Stack of an libIGCM job :" > stack37 echo "Stack of an libIGCM job :" > ${StackFileLocation}/stack 35 38 fi 36 39 fi … … 77 80 # (c'est donc l'inverse de la norme d'affichage). 78 81 typeset i decal 79 (( i=0 ))82 i=0 80 83 until [ $i -eq ${IGCM_debug_LenStack} ]; do 81 84 decal=0 82 85 until [ $decal -eq ${i} ]; do 83 86 printf -- ' ' 84 let $(( decal=decal+1 ))87 (( decal = decal + 1 )) 85 88 done 86 89 echo "$i - ${IGCM_debug_Stack[$(( $IGCM_debug_LenStack-$i-1 ))]}"\ 87 90 "(${IGCM_debug_StackArgs[$(( $IGCM_debug_LenStack-$i-1 ))]})" 88 let $((i=i+1))91 ((i = i + 1)) 89 92 done 90 93 echo "!------------------------!" … … 98 101 function IGCM_debug_PushStack { 99 102 if ( $DEBUG_debug ) ; then 100 typeset decal 101 echo >> stack103 typeset decal inputs 104 echo >> ${StackFileLocation}/stack 102 105 decal=0 103 while [ $decal -lt ${IGCM_debug_LenStack} ]; do 104 # printf -- ' ' >> stack 105 printf ' ' >> stack 106 let $(( decal=decal+1 )) 106 while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do 107 printf ' ' >> ${StackFileLocation}/stack 108 (( decal = decal + 1 )) 107 109 done 108 echo "> ${IGCM_debug_LenStack} : ${@}" >> stack 109 110 echo "> ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/stack 111 112 # STORE input list in an indexed array 113 INPUTS=( $@ ) 110 114 # We add function call name on beginning of the stack 111 115 set +A IGCM_debug_Stack -- ${1} ${IGCM_debug_Stack[*]} … … 115 119 # Then, we shift StackArgs tabular 116 120 if [ $# -gt 1 ]; then 117 shift; 118 IGCM_debug_StackArgs[0]=$(echo ${@} | sed -e "s/\ /,/g") >&2 121 IGCM_debug_StackArgs[0]=$(echo ${INPUTS[*]:1} | sed -e "s/\ /,/g") 119 122 fi 120 123 (( IGCM_debug_LenStack = IGCM_debug_LenStack + 1 )) … … 132 135 if ( $DEBUG_debug ) ; then 133 136 if ( ${ExitFlag} ) ; then 134 echo '!!! ExitFlag has been activated !!!' >> stack 135 fi 137 echo '!!! ExitFlag has been activated !!!' >> ${StackFileLocation}/stack 138 fi 139 typeset decal 136 140 if [ "${IGCM_debug_Stack[0]}" = "${1}" ]; then 137 let $(( IGCM_debug_LenStack = IGCM_debug_LenStack - 1 )) 138 139 IGCM_debug_Stack[0]="" 140 IGCM_debug_StackArgs[0]="" 141 142 set +A tmpStack -- ${IGCM_debug_Stack[*]} 143 unset IGCM_debug_Stack 144 set +A IGCM_debug_Stack -- ${tmpStack[*]} 145 146 set +A tmpStack -- ${IGCM_debug_StackArgs[*]} 147 unset IGCM_debug_StackArgs 148 set +A IGCM_debug_StackArgs -- ${tmpStack[*]} 149 unset tmpStack 141 (( IGCM_debug_LenStack = IGCM_debug_LenStack - 1 )) 142 set -A IGCM_debug_Stack -- ${IGCM_debug_Stack[*]:1} 143 set -A IGCM_debug_StackArgs -- ${IGCM_debug_StackArgs[*]:1} 150 144 else 151 145 echo 'IGCM_debug_Exit : stack is corrupted ! LenStack =' ${IGCM_debug_LenStack} 152 146 IGCM_debug_Exit $@ 153 147 fi 154 typeset decal=0 155 while [ $decal -lt ${IGCM_debug_LenStack} ]; do 156 # printf -- ' ' >> stack 157 printf ' ' >> stack 158 (( decal=decal+1 )) 148 decal=0 149 while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do 150 printf ' ' >> ${StackFileLocation}/stack 151 (( decal = decal + 1 )) 159 152 done 160 echo "< ${IGCM_debug_LenStack} : ${@}" >> stack153 echo "< ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/stack 161 154 162 155 if [ ${IGCM_debug_LenStack} = 0 ]; then … … 172 165 IGCM_debug_StackArgs[0]=${NULL_STR} 173 166 fi 174 175 167 fi 176 168 #IGCM_debug_CallStack … … 203 195 fi 204 196 if ( $DEBUG_debug ) ; then 205 IGCM_sys_Cp stack ${SUBMIT_DIR}/stack_error206 197 echo "Your files on ${R_OUT} :" 207 198 IGCM_sys_Tree ${R_SAVE} … … 228 219 echo " EXIT THE JOB." 229 220 echo 230 if ( $DEBUG_debug ) ; then231 IGCM_sys_Cp stack ${SUBMIT_DIR}/stack_error232 echo233 fi234 221 # Mail notification 235 222 #IGCM_sys_SendMailPost
Note: See TracChangeset
for help on using the changeset viewer.