This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello, I discovered a recent regression on ia64 which is a combination of two factors: - A recent change that was made in write_exp_msymbol to add the conversion of the msymbol address from a function descriptor to the actual address. - A recent change in ia64_convert_from_func_ptr_addr that treated addresses pointing at non-executable sections as function descriptors. The intent of this change was to handle descriptors that are stored outside the .opd section (found during shared library handling). Clearly, my change was introducing a heuristic, and the heuristic was assuming that we knew that the address is pointing to a function or its descriptor. Unfortunately, this is not necessarily the case when we're trying to print the address of a minimal symbol. The example I stumbled on is trying to print the address of "constraint_error". But there are several tests in our testsuite that now fail because of this reason. What I did was improve the heuristic a bit: If the address is inside a non-executable section, then treat as a descriptor iff the target address resides inside an executable section. 2008-05-28 Joel Brobecker <brobecker@adacore.com> * ia64-tdep.c (ia64_convert_from_func_ptr_addr): Improve the heuristic that identifies function descriptors outside of the .opd section. Tested on x86-linux; it fixes 20 regressions inside catch_ex.exp, asm-source.exp and nodebug.exp. Checked in. -- Joel
Attachment:
ce.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |