UPS with underlying gdb on HP-UX doesn't work

From: Hoelz, Thomas (Thomas.Hoelz_at_gedas.de)
Date: Wed Sep 16 1998 - 14:46:29 BST


Hello,

despite the instructions given in README.gdb I couldn't bring ups to work.
The system I use is (according to configure): hppa1.1-hp-hpux9.01.

The perl scripts provided with ups don't fit at all for the newest version
of gdb, that's 4.17. I had to change to gdb 4.16. gcc 2.7.2.3 (without gas
on HP, so the -g option has no effect) delivered a well working executable
of gdb. Applying the gdbconf perl scripts to the gdb sources led to some
errors, but I could correct most of them. 

Compilation of ups' newest version 3.32 including it's brand new patch
3.32.1 led to a huge amount of errors. The date README.gdb was written and
the explicit reference to ups 3.29 brought me to try that version. It did
not work either.

For those, who are interested in details or might give me some hints how to
overcome the difficulties, I'll enclose a more detailed description at the
end of this mail.

Finally, my questions are:
1. Is there anyone who has built ups on HP using gdb successfully? If so, is
it possible to obtain a binary?
2. Any hints how to build a working version of ups?
3. Is the combination of ups and gdb capable of debugging executables
generated by the native HP compiler or only those ones compiled with gcc?


Thank you in advance

Thomas Hölz

------------------------------------------------
gedas GmbH
Technische Informationssysteme
Pascalstraße 11, D-10587 Berlin
Telefon/phone	+49-30-399 71-322
Telefax/telefax	+49-30-399 71-992
Mailto:Thomas.Hoelz_at_gedas.de
http://www.gedas.net
------------------------------------------------


My problems in detail:

I) gdb 4.17
The gdbconf perl scripts which shall modify the gdb source tree don't fit
for gdb 4.17.

II) gdb 4.16
The gdbconf perl scripts get confused in two respects:
  - The #ifdef NOT_NEEDED_FOR_UPS lines mix up with some #ifdef ANSI lines,
leading to unterminated conditionals. I could fix that.
  - The similar applies to some other structures.
Some of the functions commented out by conditionals are used as
initializators in arrays of function pointers.
Some of the functions, gd_driver in ups will call, remain declared to be
static, thus are missing during the link step. That's especially true for
functions from infcmd.c.

III) ups 3.32.1
Too much differences between ups and gdb to obtain a successful compilation.

IV) ups 3.29
The conditions in the #ifdef lines used in ao_ptrace.c and data.c to
distinguish data type sizes on different machines don't fit on HP: In a
switch statement they provide two cases with the same label (for long double
and double).
The macro COMMON_OBJS in Makefile doesn't contain the ao_ files. Since they
provide some of the symbol table and core file handling funclions, linking
fails.
Some of the required ao_ functions are enclosed within the #ifdef AO_TARGET
conditionals, so they remain unsatisfied later.
The three level ifdef structure at the bottom of ao_ifdef.h is misorganized.
Neither AO_USE_PROCFS nor AO_USE_PTRACE become defined. So - for example -
ps_stop in target.c stays undefined, leading to unsatisfied symbols in
linking.
In ao_symread.c (get_cont_symstring) are references to components of a
struct nlist, which actually don't exist in that system provided struct.
In start_gdb_inferior (gd_driver.c) there ist a call to _initialize_infcmd,
which can't be found in libgdb.a.


This archive was generated by hypermail 2.1.4 : Wed Feb 13 2002 - 21:51:32 GMT