home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / gnu / gdb / bug / 921 < prev    next >
Encoding:
Text File  |  1992-07-30  |  3.6 KB  |  144 lines

  1. Newsgroups: gnu.gdb.bug
  2. Path: sparky!uunet!cis.ohio-state.edu!is22.ISoft.FR!slt
  3. From: slt@is22.ISoft.FR (Stephane Tsacas)
  4. Subject: ptype command output
  5. Message-ID: <9207292148.AA07756@is22.isoft.fr>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Thu, 30 Jul 1992 01:48:46 GMT
  10. Approved: bug-gdb@prep.ai.mit.edu
  11. Lines: 131
  12.  
  13. Hello,
  14.  
  15. I'm using gdb 4.5 compiled for a sparc (sunos 4.1.1).
  16.  
  17. With the following program :
  18.  
  19. #include <sys/types.h>
  20. #include <sys/time.h>
  21. #include <sys/proc.h>
  22.  
  23.  
  24. struct proc p;
  25.  
  26. struct _struct1
  27. {
  28.   struct _struct1 *pstruct1;
  29.   int rest;
  30. };
  31.  
  32. struct _struct1 struct1;
  33.  
  34. main() {; }
  35.  
  36. (gdb) ptype struct _struct1
  37. type = struct _struct1 {
  38.     struct _struct1 *pstruct1;
  39.     int rest;
  40. }
  41.  
  42. ;;; OK
  43.  
  44. But now, if I do `ptype struct proc', each component of struct proc
  45. which is a `struct proc *' is expanded :
  46.  
  47. (gdb) ptype struct proc
  48. type = struct proc {
  49.     struct {
  50.         struct <unknown> p_link;
  51.         struct <unknown> p_rlink;
  52.         struct <unknown> p_nxt;
  53.         struct <unknown> *p_prev;
  54.         struct as *p_as;
  55.         struct seguser *p_segu;
  56.         caddr_t p_stack;
  57.         struct user *p_uarea;
  58.         char p_usrpri;
  59.         char p_pri;
  60.         char p_cpu;
  61.         char p_stat;
  62.         char p_time;
  63.         char p_nice;
  64.         char p_slptime;
  65.         char p_cursig;
  66.         int p_sig;
  67.         int p_sigmask;
  68.         int p_sigignore;
  69.         int p_sigcatch;
  70.         int p_flag;
  71.         unsigned short p_uid;
  72.         unsigned short p_suid;
  73.         unsigned short p_sgid;
  74.         short p_pgrp;
  75.         short p_pid;
  76.         short p_ppid;
  77.         unsigned short p_xstat;
  78.         short p_cpticks;
  79.         struct ucred *p_cred;
  80.         struct rusage *p_ru;
  81.         int p_tsize;
  82.         int p_dsize;
  83.         int p_ssize;
  84.         int p_rssize;
  85.         int p_maxrss;
  86.         int p_swrss;
  87.         caddr_t p_wchan;
  88.         int p_pctcpu;
  89.         struct <unknown> p_pptr;
  90.         struct <unknown> p_cptr;
  91.         struct <unknown> p_osptr;
  92.         struct <unknown> p_ysptr;
  93.         struct <unknown> p_tptr;
  94.         struct itimerval p_realtimer;
  95.         struct sess *p_sessp;
  96.         struct <unknown> p_pglnk;
  97.         short p_idhash;
  98.         short p_swlocks;
  99.         struct aiodone *p_aio_forw;
  100.         struct aiodone *p_aio_back;
  101.         int p_aio_count;
  102.         int p_threadcnt;
  103.     } *p_link;
  104.     struct {
  105.         struct <unknown> p_link;
  106.         struct <unknown> p_rlink;
  107. ... for each struct proc * ...
  108.  
  109. I don't understand why the output differs.
  110.  
  111. Also, `info variables' expand p but not struct1, why ?
  112.  
  113.  
  114. When I type `gdb bar.o' then `info variables' gdb crashes if bar.o
  115. does not countain a main() fonction.  If this can help :
  116. (top-gdb) r /tmp/bar.o
  117. Starting program: /mnt/GNU/gdb-4.5/gdb/gdb /tmp/bar.o
  118. GDB is free software and you are welcome to distribute copies of it
  119.  under certain conditions; type "show copying" to see the conditions.
  120. There is absolutely no warranty for GDB; type "show warranty" for details.
  121. GDB 4.5, Copyright 1992 Free Software Foundation, Inc...
  122. Setting up the environment for debugging gdb.
  123.  
  124. Program received signal 11, Segmentation fault
  125. During symbol reading, bad block start address patched.
  126. 0x28000 in lookup_symbol (name=0xf7fff928 "fatal", block=0x0, 
  127.     namespace=VAR_NAMESPACE, is_a_field_of_this=0x0, symtab=0xf7fff954)
  128.     at symtab.c:472
  129. 472               ALL_MSYMBOLS (objfile, msymbol)
  130. (top-gdb)  p objfile->msymbols
  131. $3 = (struct minimal_symbol *) 0x0
  132. (top-gdb) 
  133.  
  134.  
  135.   ,
  136. Stephane
  137.  
  138.  
  139. Stephane Tsacas            UUCP: slt@isoft.fr
  140. 1/3 av. Brancion, bat B        slt%isoftfr@uunet.UU.NET
  141. 75015 Paris            Phone: (33-1) 48 28 4994 / (33-1) 64 46 1748
  142. France                <<PUSHJ P, POPJ P, recursively>>
  143.  
  144.