summaryrefslogtreecommitdiff
path: root/gdb/eval.c
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2012-01-09 20:27:41 +0000
committerKeith Seitz <keiths@redhat.com>2012-01-09 20:27:41 +0000
commit8029d61b44899feca9110c468692eec40d56db10 (patch)
tree10a668af9818663761e56f394c4c822d0355d323 /gdb/eval.c
parentb37458def40a3a1217a3ac84072386c686bfb278 (diff)
downloadgdb-8029d61b44899feca9110c468692eec40d56db10.tar.gz
* Makefile.in (SFILES): Remove wrapper.c.
(HFILES_NO_SRCDIR): Remove wrapper.h. (COMMON_OBS): Remove wrapper.o. * cli/cli-interp.c: Don't inlude wrapper.h. * corelow.c: Likewise. (core_open): Replace gdb_target_find_new_threads with TRY_CATCH around target_find_new_threads. * eval.c (fetch_subexp_value): Likewise for value_fetch_lazy. * gdbtypes.c (safe_parse_type): Likewise for parse_and_eval_type. * varobj.c (varobj_create): Likewise for parse_exp_1 and evaluate_expression. (varobj_set_value): Likewise for evaluate_expression and value_assign. (install_new_variable): Likewise for value_fetch_lazy. (adjust_value_for_child_access): Likewise for value_ind. (c_describe_child): Likewise for value_subscript and value_ind. (c_value_of_root): Likewise for evaluate_expression. * wrapper.c: Remove. * wrapper.h: Remove.
Diffstat (limited to 'gdb/eval.c')
-rw-r--r--gdb/eval.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gdb/eval.c b/gdb/eval.c
index d48b450e92f..0244f7a039b 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -41,7 +41,6 @@
#include "gdb_obstack.h"
#include "objfiles.h"
#include "python/python.h"
-#include "wrapper.h"
#include "gdb_assert.h"
@@ -234,9 +233,21 @@ fetch_subexp_value (struct expression *exp, int *pc, struct value **valp,
/* Make sure it's not lazy, so that after the target stops again we
have a non-lazy previous value to compare with. */
- if (result != NULL
- && (!value_lazy (result) || gdb_value_fetch_lazy (result)))
- *valp = result;
+ if (result != NULL)
+ {
+ if (!value_lazy (result))
+ *valp = result;
+ else
+ {
+ volatile struct gdb_exception except;
+
+ TRY_CATCH (except, RETURN_MASK_ERROR)
+ {
+ value_fetch_lazy (result);
+ *valp = result;
+ }
+ }
+ }
if (val_chain)
{