From mboxrd@z Thu Jan 1 00:00:00 1970 From: David B Anderson To: ezannoni@cygnus.com, Eli Zaretskii Cc: jimb@cygnus.com, gdb@sources.redhat.com, cagney@cygnus.com, davea@quasar.engr.sgi.com Subject: Re: GDB on SGI Irix 6.5 Date: Wed, 13 Jun 2001 13:35:00 -0000 Message-id: <200106132033.NAA33197@quasar.engr.sgi.com> References: <3B266F35.50007@cygnus.com> <15142.30117.72465.686304@kwikemart.cygnus.com> X-SW-Source: 2001-06/msg00107.html | |> From: Elena Zannoni |> Date: Tue, 12 Jun 2001 16:03:49 -0400 |> |> Andrew Cagney writes: |> > [I'll take the liberty of adding Elena and Jim. Might be useful to pose |> > any follow on questions on gdb@] |> > |> > > On Thu, 17 May 2001, David B Anderson wrote: |> > > |> > > |> > >> The 64bit dwarf2 that is read by read_initial_length is based on |> > >> dwarf 2.1, designed in 2000. SGI 64bit dwarf2 was designed in |> > >> the early 1990's. SGI made offsets etc 64bit in elf64 |> > >> (and offsets etc 32bits in elf32). |> > >> (basically we could not bring ourselves to limit dwarf |> > >> offsets to 32 bits in an elf64 file...) |> > >> |> > >> Anyway, to be correct for IRIX6, read_initial_length |> > >> needs to know it is IRIX elf64 and then |> > >> /* UNTESTED, NOT ALL THAT NEEDS TO BE DONE probably */ |> > >> cu_header->initial_length_size = 8; |> > >> cu_header->offset_size = 8; |> > >> at least gives the right sizes. |> > > |> > > |> |> Are these the only differences? Is anything SGI specific encoded in the |> 'version' field of cu_header? Maybe that can be used. Is there somewhere |> in the debug info a field that tells that this is SGI's version? | |I don't see anything in the documents I got from Dave's site. Dave, |could you please answer these questions? | |Thanks for the other advice, I will look that up. Hopefully already anwered. No, other field in dwarf2. However, because IRIX is big-endian, and because no compilation unit should have an initial-length field with all zero bits, A test for a dwarf2 CU (compilation unit) initial-length of zero followed 4 bytes later by a correct version number for dwarf2 might suffice (in an elf64 big endian object) folowed by setting up the initial_length_size and offset_size as above might suffice. Whether this can be done sensibly multi-arch in gdb is not clear to me. davea@sgi.com