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 188.8.131.52 (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