From 6517b69a0052db4d100c03b22a061989e769ddeb Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 26 Jan 2004 19:55:45 +0000 Subject: [PATCH] Index: ChangeLog 2004-01-26 Andrew Cagney * dwarf2read.c (read_func_scope): Document frame-base hack. --- gdb/ChangeLog | 4 ++++ gdb/dwarf2read.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b20f0e9ebf..296dbc0f01 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2004-01-26 Andrew Cagney + + * dwarf2read.c (read_func_scope): Document frame-base hack. + 2004-01-25 Mark Kettenis * infcmd.c (print_return_value): Plug memory leak; delete diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2276562338..3acbc583a3 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -2211,6 +2211,15 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) it. */ attr = dwarf_attr (die, DW_AT_frame_base); if (attr) + /* FIXME: cagney/2004-01-26: The DW_AT_frame_base's location + expression is being recorded directly in the function's symbol + and not in a separate frame-base object. I guess this hack is + to avoid adding some sort of frame-base adjunct/annex to the + function's symbol :-(. The problem with doing this is that it + results in a function symbol with a location expression that + has nothing to do with the location of the function, ouch! The + relationship should be: a function's symbol has-a frame base; a + frame-base has-a location expression. */ dwarf2_symbol_mark_computed (attr, new->name, cu); list_in_scope = &local_symbols; -- 2.11.0