gdb: add comment in dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value

Add a comment to clarify why we temporarily override some of the
context's fields, and especially the per_objfile field.  A longer
explanation can be found in this previous commit

    44486dcf19 ("gdb: use caller objfile in dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value")

gdb/ChangeLog:

	* dwarf2/loc.c (class dwarf_evaluate_loc_desc)
	<push_dwarf_reg_entry_value>: Add comment.

Change-Id: I60c6e1062799f729b30a9db78bcb6448783324b4
This commit is contained in:
Simon Marchi 2020-05-28 15:47:53 -04:00
parent c47bae859a
commit 989ade0552
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2020-05-28 Simon Marchi <simon.marchi@polymtl.ca>
* dwarf2/loc.c (class dwarf_evaluate_loc_desc)
<push_dwarf_reg_entry_value>: Add comment.
2020-05-28 Kevin Buettner <kevinb@redhat.com>
Keith Seitz <keiths@redhat.com>

View File

@ -731,6 +731,12 @@ public:
throw_error (NO_ENTRY_VALUE_ERROR,
_("Cannot resolve DW_AT_call_data_value"));
/* We are about to evaluate an expression in the context of the caller
of the current frame. This evaluation context may be different from
the current (callee's) context), so temporarily set the caller's context.
It is possible for the caller to be from a different objfile from the
callee if the call is made through a function pointer. */
scoped_restore save_frame = make_scoped_restore (&this->frame,
caller_frame);
scoped_restore save_per_cu = make_scoped_restore (&this->per_cu,