From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Buettner To: Jim Blandy Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH RFA] partial-stab.h patch amendment Date: Thu, 06 Sep 2001 13:56:00 -0000 Message-id: <1010906205537.ZM8109@ocotillo.lan> References: <1010905224331.ZM6026@ocotillo.lan> X-SW-Source: 2001-09/msg00078.html On Sep 6, 12:36pm, Jim Blandy wrote: > These patches are approved as amended. Committed. (Thanks.) > (When I say things like that I feel like I should break out a copy of > Robert's Rules or something.) Let the record show that the following patch was committed: * dbxread.c (process_one_symbol): Don't use error result from find_stab_function_addr(). * partial-stab.h (case 'F'): Likewise. * partial-stab.h (case 'f'): Make SOFUN_ADDRESS_MAYBE_MISSING code match that used for case 'F'. This fixes the divergence that was introduced by my 1999-09-14 changes to partial-stab.h. Index: dbxread.c =================================================================== RCS file: /cvs/src/src/gdb/dbxread.c,v retrieving revision 1.22 diff -u -p -r1.22 dbxread.c --- dbxread.c 2001/09/05 02:54:15 1.22 +++ dbxread.c 2001/09/06 20:34:35 @@ -2266,8 +2266,18 @@ process_one_symbol (int type, int desc, from N_FUN symbols. */ if (type == N_FUN && valu == ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile))) - valu = - find_stab_function_addr (name, last_source_file, objfile); + { + CORE_ADDR minsym_valu = + find_stab_function_addr (name, last_source_file, objfile); + + /* find_stab_function_addr will return 0 if the minimal + symbol wasn't found. (Unfortunately, this might also + be a valid address.) Anyway, if it *does* return 0, + it is likely that the value was set correctly to begin + with... */ + if (minsym_valu != 0) + valu = minsym_valu; + } #endif #ifdef SUN_FIXED_LBRAC_BUG Index: partial-stab.h =================================================================== RCS file: /cvs/src/src/gdb/partial-stab.h,v retrieving revision 1.12 diff -u -p -r1.12 partial-stab.h --- partial-stab.h 2001/08/15 05:02:28 1.12 +++ partial-stab.h 2001/09/06 20:34:36 @@ -595,10 +595,22 @@ switch (CUR_SYMBOL_TYPE) #ifdef SOFUN_ADDRESS_MAYBE_MISSING /* Do not fix textlow==0 for .o or NLM files, as 0 is a legit value for the bottom of the text seg in those cases. */ - if (pst && textlow_not_set) + if (CUR_SYMBOL_VALUE == ANOFFSET (objfile->section_offsets, + SECT_OFF_TEXT (objfile))) { - pst->textlow = + CORE_ADDR minsym_valu = find_stab_function_addr (namestring, pst->filename, objfile); + /* find_stab_function_addr will return 0 if the minimal + symbol wasn't found. (Unfortunately, this might also + be a valid address.) Anyway, if it *does* return 0, + it is likely that the value was set correctly to begin + with... */ + if (minsym_valu != 0) + CUR_SYMBOL_VALUE = minsym_valu; + } + if (pst && textlow_not_set) + { + pst->textlow = CUR_SYMBOL_VALUE; textlow_not_set = 0; } #endif @@ -652,8 +664,17 @@ switch (CUR_SYMBOL_TYPE) value for the bottom of the text seg in those cases. */ if (CUR_SYMBOL_VALUE == ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile))) - CUR_SYMBOL_VALUE = - find_stab_function_addr (namestring, pst->filename, objfile); + { + CORE_ADDR minsym_valu = + find_stab_function_addr (namestring, pst->filename, objfile); + /* find_stab_function_addr will return 0 if the minimal + symbol wasn't found. (Unfortunately, this might also + be a valid address.) Anyway, if it *does* return 0, + it is likely that the value was set correctly to begin + with... */ + if (minsym_valu != 0) + CUR_SYMBOL_VALUE = minsym_valu; + } if (pst && textlow_not_set) { pst->textlow = CUR_SYMBOL_VALUE;