[gnu.gdb.bug] gdb-3.5 on pyramid

petri%tubsibr@relay.eu.net (Stefan Petri) (02/13/90)

Machine: Nixdorf Targon/35-M50 with TOS3.3
	( a pyramid 98xx with OSx4.4, I *guess*)
Program: gdb-3.5 , the distribution from prep.ai.mit.edu

1) In Makefile-dist:
   ALLOCA must be defined - there is an alloca.o in /usr/.attlib/libPW.a,
   that one can extract and use.
     
2) At the end I appended some patches to get the thing configured & built

3) I can't call a function out of gdb (this was also in gdb-3.3,
   never tried 3.4)
/u1/petri 3 > cat t.c
int b;
foo()
{
  b = 5;
  return 3;
}

main()
{
  foo();
}
/u1/petri 4 > gcc -g t.c
jupiter:/u1/petri 5 > gdb a.out
GDB 3.5, Copyright (C) 1989 Free Software Foundation, Inc.
There is ABSOLUTELY NO
[..]
Reading symbol data from /u1/petri/a.out...done.
Type "help" for a list of commands.
(gdb) break main
Reading in symbols for t.c...done.
Breakpoint 1 at 0x60: file t.c, line 11.
(gdb) run
Starting program: /u1/petri/a.out 

Bpt 1, main () (t.c line 11)
11	  foo();
(gdb) p foo()
Bus error (core dumped)
/u1/petri 6 > file core
core:	pyr core dump data from 'a.out'
--> this is ``/usr/local/bin/file''
/u1/petri 7 > 

I was not able to debug gdb with sdb, dbx or a copy of itself,
no matter if compiled with cc or gcc. The results I get are (seem to be ?)
indeterministic  :-(



*** config.gdb	Tue Feb 13 15:16:12 1990
--- ../config.gdb	Tue Feb 13 15:17:51 1990
***************
*** 134,140
  	depfile=altos-dep.c
  	opcodefile=m68k-opcode.h
  	;;
! pyramid)
  	echo
  	echo "Note that GDB on Pyramids only works with GCC."
  	echo

--- 134,140 -----
  	depfile=altos-dep.c
  	opcodefile=m68k-opcode.h
  	;;
! pyr)
  	echo
  	echo "Note that GDB on Pyramids only works with GCC."
  	echo
*** pyr-dep.c	Tue Feb 13 15:16:14 1990
--- ../pyr-dep.c	Tue Feb 13 15:17:50 1990
***************
*** 340,346
  extern CORE_ADDR reg_stack_end;
  
  /* need this so we can find the global registers: they never get saved. */
! static CORE_ADDR global_reg_offset;
  static CORE_ADDR last_frame_address;
  static CORE_ADDR last_frame_offset;
  

--- 340,346 -----
  extern CORE_ADDR reg_stack_end;
  
  /* need this so we can find the global registers: they never get saved. */
! CORE_ADDR global_reg_offset; /* S.P. */
  static CORE_ADDR last_frame_address;
  CORE_ADDR last_frame_offset; /* S.P. */
  
***************
*** 342,348
  /* need this so we can find the global registers: they never get saved. */
  static CORE_ADDR global_reg_offset;
  static CORE_ADDR last_frame_address;
! static CORE_ADDR last_frame_offset;
  
  
  /* Address in core file of start of register window stack area.

--- 342,348 -----
  /* need this so we can find the global registers: they never get saved. */
  CORE_ADDR global_reg_offset; /* S.P. */
  static CORE_ADDR last_frame_address;
! CORE_ADDR last_frame_offset; /* S.P. */
  
  
  /* Address in core file of start of register window stack area.
***************
*** 347,353
  
  /* Address in core file of start of register window stack area.
     Don't know if is this any of meaningful, useful or necessary.   */
! static CORE_ADDR reg_stack_offset;
  
  #endif /* PYRAMID_CORE */  
  

--- 347,353 -----
  
  /* Address in core file of start of register window stack area.
     Don't know if is this any of meaningful, useful or necessary.   */
! CORE_ADDR reg_stack_offset; /* S.P. */
  
  #endif /* PYRAMID_CORE */  
  
--
Stefan Petri					<petri@tubsibr.UUCP>
Technische Universitaet Braunschweig, Institut fuer Betriebssysteme und
Rechnerverbund, 3300 Braunschweig, W. Germany.