This is the mail archive of the gdb-patches@sources.redhat.com 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]

[rfa/6.0] Fix a thinko in dwarf2loc


Any variable with DW_OP_reg* requires a frame to read it - what
symbol_read_needs_frame () really means is "is this variable meaningful when
the program is not running".

This would show up in the testsuite, but GCC doesn't tend to put locals in
registers without optimization or register keywords everywhere.  Symptom is
that a watchpoint was not deleted when we left its scope, since we thought
it was global.

OK?

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

2003-08-01  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2loc.c (dwarf2_loc_desc_needs_frame): Variables in a
	register do need a frame.

--- gdb-5.3.20030801/gdb/dwarf2loc.c.orig	2003-08-01 14:58:57.000000000 -0400
+++ gdb-5.3.20030801/gdb/dwarf2loc.c	2003-08-01 15:00:05.000000000 -0400
@@ -318,7 +318,7 @@ dwarf2_loc_desc_needs_frame (unsigned ch
 
   free_dwarf_expr_context (ctx);
 
-  return baton.needs_frame;
+  return baton.needs_frame || ctx->in_reg;
 }
 
 static void


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]