that attachment didnt quite work, lets try it this way :)

--
cinap
#!/bin/rc

v=()

fn otherqid {
        x=`{echo $1 | sed 's/[12]$//'}
        switch($1){
        case $x^1
                echo $x^2
        case $x^2
                echo $x^1
        }
}

fn traceqid {
        while(! ~ $#* 0){
                echo '['$2']' $3 $1
                tracepid `{grep -n `{otherqid $1} /proc/*/fd | sed 
's!^/proc/([^/]+)/.*!\1!g'} \
                        | sed 's/^/     /g'
                shift
                shift
                shift
        }
}

fn tracepid {
        while(! ~ $#* 0){
                echo $1 `{cat /proc/$1/args >[2]/dev/null}
                switch($1){
                case $v
                        echo '  ...'
                case *
                        v=($1 $v)
                        traceqid `{awk '/\|/{q=substr($5,2);print q" "$1" 
"$10}' /proc/$1/fd} \
                                | sed 's/^/     /g'
                }
                shift
        }
}

if(~ $#* 0){
        echo 'Usage: ' $0 '[ pid ... ]' >[1=2]
        exit usage
}

tracepid $*

Reply via email to