From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20294 invoked by alias); 10 Jun 2003 14:53:49 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 20242 invoked from network); 10 Jun 2003 14:53:48 -0000 Received: from unknown (HELO hub.ott.qnx.com) (209.226.137.76) by sources.redhat.com with SMTP; 10 Jun 2003 14:53:48 -0000 Received: from smtp.ott.qnx.com (smtp.ott.qnx.com [10.0.2.158]) by hub.ott.qnx.com (8.9.3p2/8.9.3) with ESMTP id KAA26353; Tue, 10 Jun 2003 10:47:46 -0400 Received: from catdog ([10.4.2.2]) by smtp.ott.qnx.com (8.8.8/8.6.12) with SMTP id KAA17526; Tue, 10 Jun 2003 10:53:44 -0400 Message-ID: <050801c32f60$21211d10$0202040a@catdog> From: "Kris Warkentin" To: Cc: "Kevin Buettner" , "Gdb@Sources.Redhat.Com" References: <200306101012.h5AAClK01881@pc960.cambridge.arm.com> <047001c32f4a$d31eead0$0202040a@catdog> Subject: Re: problem with fetch_link_map_offsets Date: Tue, 10 Jun 2003 14:53:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-SW-Source: 2003-06/txt/msg00162.txt.bz2 > > > Yeah but....a QNX binary is just an ordinary elf binary. There are no > > > special sections or magic in there for the sniffer to catch. Hence my > > > problem. Perhaps it should be returning unknown so that another sniffer > > > (like my one liner) could get it? > > > > > > > NetBSD binaries look like ordinary ELF too, as do Linux. The only way to > > resolve this is to arange for the crt0.o file to contain some magic that > > GDB can find. Normally this is a special .note section. > > > > Can you not arrange for QNX binaries to have such a note and then add > that. > > Perhaps. I'll have to talk to some of the folk here. I think it would be > really handy to be able to recognize one of our binaries. Thanks for the > suggestion. Here's a fix that works right now: If I put the code below into generic_elf_osabi_sniff_abi_tag_sections(), the sniffer does its job. The problem with this is that it will only work on dynamically linked binaries. Convenient as a stop-gap and for a certain amount of backwards compatability. I think the .note.qnxnto.ident section is still a good idea though. I tried putting one into our crtbegin.o but then programs were core dumping so I'm doing something wrong there. I'll have to talk to the OS folks. cheers, Kris /* QNX Neutrino has ldqnx.so as its linker. */ if (strcmp (name, ".interp") == 0 && sectsize > 0) { char *buf = alloca(sectsize); bfd_get_section_contents(abfd, sect, buf, 0, sectsize); buf[sectsize] = '\0'; /* Safety first boys and girls. */ if(strstr(buf, "ldqnx.so")) *os_ident_ptr = GDB_OSABI_QNXNTO; return; }