From: johnr@phoenix.irv.icl.com (John Redden)
Newsgroups: comp.unix.sysv386
Subject: gdb/EsixV.4.0.3/TDK
Date: 27 Aug 92 21:19:24 GMT
Organization: ICL North America, Irvine, CA 92718


I have been working on a couple of ports of gdb, one with lots of
hacking to a SysV4 sparc box and one to Esix V.4.0.3, running on a TDK
i486.  Now the port for Esix is "supposed" to be almost be a compile
and go.  When I run gdb after a program completes or the first break
point is hit, gdb core dumps.  It was configured with your standard
i386sv4 config file.  

Here is the back trace:

---------------------------------

Script started on Mon Aug 24 17:37:28 1992
$ gdb /usr/local/bin/NEWgdb core
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.3, Copyright 1991 Free Software Foundation, Inc...
Core was generated by `NEWgdb /home/redden/src/tti/net/dice/roll'.
Program terminated with signal 11, Segmentation fault.
#0  0xfff in ?? ()
(gdb) bt
#0  0xfff in ?? ()
#1  0xffffffff in ?? ()
#2  0x808f17f in terminal_ours_1 (output_only=0) at inflow.c:233
#3  0x808f109 in terminal_ours () at inflow.c:205
#4  0x8065d14 in wait_for_inferior () at infrun.c:818
#5  0x8065b0b in child_create_inferior (
    exec_file=0x811e2c8 "/home/redden/src/tti/net/dice/roll", 
    allargs=0x8119008 "3", env=0x8123288) at infrun.c:681
#6  0x806439e in run_command (args=0x811a00c "3", from_tty=1) at infcmd.c:246
#7  0x804ad93 in execute_command (p=0x811a00c "3", from_tty=1) at main.c:882
#8  0x804af0e in command_loop () at main.c:943
#9  0x804ac44 in main (argc=2, argv=0x8047e3c) at main.c:820
#10 0x804a07f in _start ()
(gdb) quit
$ exit

---------------------------------------

It is crashing when setting the process group:

<code segment from inflow.c>  


#ifdef TIOCGPGRP
      osigttou = (void (*) ()) signal (SIGTTOU, SIG_IGN);

      result = ioctl (0, TIOCGPGRP, &pgrp_inferior);
      result = ioctl (0, TIOCSPGRP, &pgrp_ours); /*<- METHINKS IT FAILS HERE*/

      signal (SIGTTOU, osigttou);
#else
      signal (SIGINT, sigint_ours);
      signal (SIGQUIT, sigquit_ours);
#endif /* TIOCGPGRP */

--------------------------------------

<RUNNING TRUSS ON NEWgdb RENDERS:>


script done on Mon Aug 24 17:44:17 1992
Script started on Mon Aug 24 18:14:42 1992
$ truss NEWgdb /home/redden/src/tti/net/dice/roll
execve("/usr/local/bin/NEWgdb", 0x08047E40, 0x08047E4C)  argc = 2
open("/dev/zero", O_RDONLY, 020000537744)       = 3
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x8002E000
getuid()                                        = 102  [ 102 ]
getuid()                                        = 102  [ 102 ]
getgid()                                        = 1  [ 1 ]
getgid()                                        = 1  [ 1 ]
open("/usr/lib/libsocket.so", O_RDONLY, 020000537744) = 4
read(4, "7F E L F010101\0\0\0\0\0".., 308)      = 308

mmap(0x00000000, 59224, PROT_READ, MAP_PRIVATE, 3, 0) = 0x80030000
mmap(0x80030000, 45996, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x80030000
mmap(0x8003C000, 3620, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 45056) = 0x8003C000
mprotect(0x8003D000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
close(4)                                        = 0
open("/usr/lib/libnsl.so", O_RDONLY, 020000537744) = 4
read(4, "7F E L F010101\0\0\0\0\0".., 308)      = 308
mmap(0x00000000, 217736, PROT_READ, MAP_PRIVATE, 3, 0) = 0x80040000
mmap(0x80040000, 180084, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x80040000
mmap(0x8006C000, 19248, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 176128) = 0x8006C000
mprotect(0x80071000, 20480, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
close(4)                                        = 0
close(3)                                        = 0
sysi86(SI86FPHW, 0x8002C4C0, 0x8002BFE4, 0x8000B185) = 0x00000000
brk(0x081155C0)                                 = 0
getcontext(0x08114980)

   ...

<A BUNCH OF STUFF DELETED>

   ...

read(5, "\0\0\080 tE00280B8A50280".., 20)       = 20
ioctl(5, PIOCRUN, 0x08102830)                   = 0
ioctl(5, PIOCSTATUS, 0x08102888)                = 0
d3 = ioctl(5, PIOCWSTOP, 0x08102888)    (sleeping...)
3 
    Received signal #18, SIGCLD, in ioctl() [default]
      siginfo: SIGCLD CLD_EXITED pid=8042 uid=2 status=0x0000
ioctl(5, PIOCWSTOP, 0x08102888)                 Err#2  ENOENT
wait()                                          = 8042  [ 0x0000 ]
sigaction(SIGTTOU, 0x00000000, 0x08047B74)      = 0
sigaction(SIGTTOU, 0x08047B74, 0x08047B54)      = 0
ioctl(0, TIOCGPGRP, 0x0810F7E4)                 = 0
    Received signal #27, SIGTTOU, in ioctl() [caught]
ioctl(0, TIOCSPGRP, 0x0810F7F0)                 Err#4  EINTR
    Received signal #25, SIGCONT [default]
      siginfo: SIGCONT pid=8032 uid=102
    Incurred fault #6, FLTBOUNDS  %pc = 0x00000FFF
      siginfo: SIGSEGV SEGV_MAPERR addr=0x00001000
    Received signal #11, SIGSEGV [default]
      siginfo: SIGSEGV SEGV_MAPERR addr=0x00001000
        *** process killed ***
$ quit
/bin/ksh: quit:  not found
$ exit

script done on Mon Aug 24 18:19:23 1992



----------------------------------

Has anyone ran into this one?

Help or information would be greatly appreciated.

John Redden

johnr@al.irv.icl.com (work)
Newsgroups: comp.unix.sysv386