From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22637 invoked by alias); 13 Sep 2003 00:17:47 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22573 invoked from network); 13 Sep 2003 00:17:46 -0000 Received: from unknown (HELO zenia.home) (12.223.225.216) by sources.redhat.com with SMTP; 13 Sep 2003 00:17:46 -0000 Received: by zenia.home (Postfix, from userid 5433) id 0D17C20758; Fri, 12 Sep 2003 19:15:46 -0500 (EST) To: gdb-patches@sources.redhat.com Subject: PATCH: tolerate files with no .data, .bss, or .rodata From: Jim Blandy Date: Sat, 13 Sep 2003 00:17:00 -0000 Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-09/txt/msg00281.txt.bz2 2003-09-12 Jim Blandy * dbxread.c (read_dbx_symtab): Don't report an internal error if the file has no .data, .bss, or .rodata sections. Instead wait until we see a variable alleged to live in one of those sections. Index: gdb/dbxread.c =================================================================== RCS file: /cvs/src/src/gdb/dbxread.c,v retrieving revision 1.53 diff -c -r1.53 dbxread.c *** gdb/dbxread.c 13 Sep 2003 00:00:32 -0000 1.53 --- gdb/dbxread.c 13 Sep 2003 00:06:12 -0000 *************** *** 1382,1388 **** data_sect_index = SECT_OFF_BSS (objfile); if (data_sect_index == -1) data_sect_index = SECT_OFF_RODATA (objfile); ! gdb_assert (data_sect_index != -1); for (symnum = 0; symnum < DBX_SYMCOUNT (objfile); symnum++) { --- 1382,1393 ---- data_sect_index = SECT_OFF_BSS (objfile); if (data_sect_index == -1) data_sect_index = SECT_OFF_RODATA (objfile); ! ! /* If data_sect_index is still -1, that's okay. It's perfectly fine ! for the file to have no .data, no .bss, and no .text at all, if ! it also has no global or static variables. If it does, we will ! get an internal error from an ANOFFSET macro below when we try to ! use data_sect_index. */ for (symnum = 0; symnum < DBX_SYMCOUNT (objfile); symnum++) {