1: #
   2: /*
   3:  *
   4:  *	UNIX debugger
   5:  *
   6:  */
   7: 
   8: #include "defs.h"
   9: 
  10: 
  11: MSG     NOCFN;
  12: 
  13: INT     callpc;
  14: BOOL        localok;
  15: SYMTAB      symbol;
  16: 
  17: STRING      errflg;
  18: 
  19: 
  20: findroutine(cframe)
  21:     L_INT       cframe;
  22: {
  23:     REG INT     narg, inst;
  24:     INT     lastpc, back2;
  25:     BOOL        v;
  26: 
  27:     v=FALSE; localok=FALSE; lastpc=callpc;
  28:     callpc=get(cframe+2, DSP); back2=get(leng(callpc-2), ISP);
  29:     IF (inst=get(leng(callpc-4), ISP)) == 04737 /* jsr pc,*$... */
  30:     THEN    narg = 1;
  31:     ELIF (inst&~077)==04700         /* jsr pc,... */
  32:     THEN    narg=0; v=(inst!=04767);
  33:     ELIF (back2&~077)==04700
  34:     THEN    narg=0; v=TRUE;
  35:     ELSE    errflg=NOCFN;
  36:         return(0);
  37:     FI
  38:     IF findsym( (v ? lastpc : ((inst==04767?callpc:0) + back2) ),ISYM) == -1
  39:         ANDF !v
  40:     THEN    symbol.symc[0] = '?';
  41:         symbol.symc[1] = 0;
  42:         symbol.symv = 0;
  43:     ELSE    localok=TRUE;
  44:     FI
  45:     inst = get(leng(callpc), ISP);
  46:     IF inst == 05726        /* tst (sp)+ */
  47:     THEN    return(narg+1);
  48:     FI
  49:     IF inst == 022626       /* cmp (sp)+,(sp)+ */
  50:     THEN    return(narg+2);
  51:     FI
  52:     IF inst == 062706       /* add $n,sp */
  53:     THEN    return(narg+get(leng(callpc+2), ISP)/2);
  54:     FI
  55:     return(narg);
  56: }

Defined functions

findroutine defined in line 20; used 3 times
Last modified: 1979-01-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 474
Valid CSS Valid XHTML 1.0 Strict