To: "Pierre Willard" cc: "Po Cheung" Hi, Here are diffs for xxgdb-1.12 for System = SCO_SV Release = 3.2v5.0.5 ------ *** ../../ref/xxgdb-1.12/Imakefile Mon Jun 19 21:20:55 1995 --- Imakefile Wed May 12 19:27:30 1999 *************** *** 62,67 **** --- 62,79 ---- DEFINES = -DSYSV $(DEFGDB) #endif + #ifdef SCOArchitecture + /* Ported to SCO_SV 3.2v5.0.5 by "Julian Stacey" */ + XCOMM - "dbx" is not on basic SCO systems, only on those with a seperately + XCOMM licenced & purchasable supplementary C developers pack; + XCOMM - "gdb" is available free on the supplementary SCO "Skunkware" CD-ROM + XCOMM - This config thus assumes gdb will be used, but if you want to buy + XCOMM dbx & configure for that: comment out the next -DGDB + CFLAGS += -DGDB + + CFLAGS += -DREAD_ZERO_NOT_EOF /* get past "EOF from gdb" in gdb_parser.c:1064 */ + #endif + #if defined(NeXTArchitecture) || defined(NextArchitecture) #if OSMajorVersion == 3 #if OSMinorVersion == 0 *** ../../ref/xxgdb-1.12/gdb_parser.c Tue Nov 22 21:47:22 1994 --- gdb_parser.c Wed May 12 18:57:41 1999 *************** *** 1058,1064 **** /*NOTREACHED*/ } if(cc == 0) { ! #ifdef READ_ZERO_NOT_EOF /* for RS6000 */ break; #else (void) fprintf(stderr, "EOF from gdb\n"); --- 1058,1064 ---- /*NOTREACHED*/ } if(cc == 0) { ! #ifdef READ_ZERO_NOT_EOF /* for RS6000 & SCO_SV-3.2v5.0.5 */ break; #else (void) fprintf(stderr, "EOF from gdb\n"); ------ I also added this comment to my .cshrc file: setenv DEBUGGER gdb # Note only a SCO with the extra purchasable C # development system comes with "dbx", the basic SCO # does not have "dbx". # without this env var, if you compile xxgdb-1.12 # on SCO, # it will bring up the graphics, then fail to find # dbx and Silently exit with No useful diagnostic. # BTW gdb is in /opt/K/SKUNK98/Gdb/4.17/usr/local/bin/ # & the SCO extra C licence also brings a graphical # front end called "dbXtra" The line that fails to report is calldbx.c : 396 & 7 execvp(debugger, argv); sprintf(errmsg, "%s error: cannot exec %s", progname, debugger); --- I tried printfs to stdout & stderr, but unless one runs ./xxgdb -debug nothing comes out. I guess you are closing stdout & stderr somewhere before if debug variable is not set, a bit too early, & the result is that your sprintf message is lost. If you could delay the close so that the message gets printed, it would be nice. On FreeBSD the debug runs fine, but on SCO at every "Next" or "Step" I seem to get "[tcsetpgrp failed in terminal_inferior: Invalid argument]" On FreeBSD: strings `which gdb` | grep tcsetpgrp tcsetpgrp _tcsetpgrp strings `which xxgdb` | grep tcsetpgrp so I guess this may be from the SCO supplied gdb binary, & not your problem ? (never the less any ideas, plse let me know).