Index: ChangeLog
authorAndrew Cagney <cagney@redhat.com>
Mon, 26 Jan 2004 19:55:45 +0000 (19:55 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 26 Jan 2004 19:55:45 +0000 (19:55 +0000)
2004-01-26  Andrew Cagney  <cagney@redhat.com>

* dwarf2read.c (read_func_scope): Document frame-base hack.

gdb/ChangeLog
gdb/dwarf2read.c

index b20f0e9ebf65cae3824399ca46fc7faa50d22e11..296dbc0f01ce85710466330502691be0125ccd1e 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-26  Andrew Cagney  <cagney@redhat.com>
+
+       * dwarf2read.c (read_func_scope): Document frame-base hack.
+
 2004-01-25  Mark Kettenis  <kettenis@gnu.org>
 
        * infcmd.c (print_return_value): Plug memory leak; delete
index 22765623384989499721ad857f60382863910063..3acbc583a30974eeb270a96aba6e9ce7dea7c0e3 100644 (file)
@@ -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;