Fix gcc bug 24490, location list query failed due to out-of-range address.
PR 2024 * dwarf2loc.c (dwarf_expr_frame_base): Use get_frame_address_in_block instead of get_frame_pc. (loclist_read_variable): Likewise.
This commit is contained in:
parent
bd73ccbdac
commit
22c6cabacd
@ -1,3 +1,10 @@
|
||||
2005-11-14 James E Wilson <wilson@specifix.com>
|
||||
|
||||
PR 2024
|
||||
* dwarf2loc.c (dwarf_expr_frame_base): Use get_frame_address_in_block
|
||||
instead of get_frame_pc.
|
||||
(loclist_read_variable): Likewise.
|
||||
|
||||
2005-11-14 Andrew Stubbs <andrew.stubbs@st.com>
|
||||
|
||||
* MAINTAINERS (Write After Approval): Add myself to the list.
|
||||
|
@ -164,9 +164,11 @@ dwarf_expr_frame_base (void *baton, gdb_byte **start, size_t * length)
|
||||
if (SYMBOL_OPS (framefunc) == &dwarf2_loclist_funcs)
|
||||
{
|
||||
struct dwarf2_loclist_baton *symbaton;
|
||||
struct frame_info *frame = debaton->frame;
|
||||
|
||||
symbaton = SYMBOL_LOCATION_BATON (framefunc);
|
||||
*start = find_location_expression (symbaton, length,
|
||||
get_frame_pc (debaton->frame));
|
||||
get_frame_address_in_block (frame));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -597,7 +599,8 @@ loclist_read_variable (struct symbol *symbol, struct frame_info *frame)
|
||||
size_t size;
|
||||
|
||||
data = find_location_expression (dlbaton, &size,
|
||||
frame ? get_frame_pc (frame) : 0);
|
||||
frame ? get_frame_address_in_block (frame)
|
||||
: 0);
|
||||
if (data == NULL)
|
||||
{
|
||||
val = allocate_value (SYMBOL_TYPE (symbol));
|
||||
|
Loading…
Reference in New Issue
Block a user