home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / src / sys / c / debug < prev    next >
Text File  |  1994-03-08  |  2KB  |  95 lines

  1. /* debug.c (c) Copyright 1990 H.Rogers */
  2.  
  3. #ifndef DEBUG
  4. #define DEBUG
  5. #endif
  6.  
  7. /* __debug(s) dumps UNIX status with title "s" */
  8.  
  9. #include <string.h>
  10.  
  11. #include "sys/os.h"
  12. #include "sys/unix.h"
  13. #include "sys/syslib.h"
  14. #include "sys/debug.h"
  15.  
  16. static void
  17. __debugval (char *s, int i)
  18. {
  19.   char *p = "        ";
  20.   int x;
  21.  
  22.   os_print (s);
  23.   x = (strlen (s) & 7);
  24.   x = x ? x : 8;
  25.   os_print (p + x);
  26.   os_prhex (i);
  27. }
  28.  
  29. static void
  30. __debugnl (void)
  31. {
  32.   os_print ("\r\n");
  33. }
  34.  
  35. #define NL() __debugnl()
  36. #define VAL(s,i) __debugval(s,i)
  37.  
  38. void
  39. __debug (char *s)
  40. {
  41.   struct file *f;
  42.   int i;
  43.  
  44.   NL ();
  45.   os_print ("# ");
  46.   if (s)
  47.     os_print (s);
  48.   NL ();
  49.   VAL ("__base: ", (int) __base);
  50.   NL ();
  51.   VAL ("__lomem: ", (int) __lomem);
  52.   VAL (" __himem: ", (int) __himem);
  53.   NL ();
  54.   VAL ("__break: ", (int) __break);
  55.   VAL (" __stack: ", (int) __stack);
  56.   NL ();
  57.   VAL ("__u:", (int) __u);
  58.   NL ();
  59.   VAL ("argc:", __u->argc);
  60.   VAL (" argv:", (int) __u->argv);
  61.   NL ();
  62.   for (i = 0; i < __u->argc; i++)
  63.     {
  64.       VAL ("argv[", (int) (__u->argv + i));
  65.       VAL (" ", i);
  66.       VAL (" ]:", (int) __u->argv[i]);
  67.       os_print (" ");
  68.       os_print (__u->argv[i]);
  69.       NL ();
  70.     }
  71.   VAL ("argb:", (int) __u->argb);
  72.   os_print (" ");
  73.   os_print (__u->argb);
  74.   NL ();
  75.   if (f = __u->file)
  76.     for (i = 0; i < 16; i++)
  77.       {
  78.     VAL ("f[", (int) (f + i));
  79.     VAL (" ", i);
  80.     VAL (" ].dup:", (int) f[i].dup);
  81.     NL ();
  82.       }
  83.   VAL ("pid:", (int) __u->pid);
  84.   VAL (" ppid:", (int) __u->ppid);
  85.   NL ();
  86.   VAL ("pproc:", (int) __u->pproc);
  87.   VAL (" wait:", __u->wait);
  88.   NL ();
  89.   VAL ("flag:", __u->flag);
  90.   VAL (" vreg:", (int) __u->vreg);
  91.   NL ();
  92.   NL ();
  93.   os_get ();
  94. }
  95.