diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2007-04-01 15:44:54 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2007-04-01 15:44:54 +0000 |
commit | c365e4fa05009241ff58f640300ab447efe0513f (patch) | |
tree | d2255a884e74fbe6e54bc178199ff098caa2f468 | |
parent | 4626bc93c9738b9cbe7c259e5a2e1de96c5bbbf7 (diff) | |
download | gdb-c365e4fa05009241ff58f640300ab447efe0513f.tar.gz |
* varobj.c (varobj_create): Keep varobj value
NULL when evaluating the type.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/varobj.c | 14 |
2 files changed, 14 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index eac38cdaa17..20f2a2d50f5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-04-01 Vladimir Prus <vladimir@codesourcery.com> + + * varobj.c (varobj_create): Keep varobj value + NULL when evaluating the type. + 2007-03-31 Pedro Alves <pedro_alves@portugalmail.pt> * NEWS: Mention new Windows CE support. diff --git a/gdb/varobj.c b/gdb/varobj.c index 7b2bfb838d2..1d8c8e8af54 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -433,7 +433,7 @@ varobj_create (char *objname, { char *p; enum varobj_languages lang; - struct value *value; + struct value *value = NULL; /* Parse and evaluate the expression, filling in as much of the variable's data as possible */ @@ -495,11 +495,15 @@ varobj_create (char *objname, If evaluate_expression succeeds we got the value we wanted. But if it fails, we still go on with a call to evaluate_type() */ if (!gdb_evaluate_expression (var->root->exp, &value)) - /* Error getting the value. Try to at least get the - right type. */ - value = evaluate_type (var->root->exp); + { + /* Error getting the value. Try to at least get the + right type. */ + struct value *type_only_value = evaluate_type (var->root->exp); + var->type = value_type (type_only_value); + } + else + var->type = value_type (value); - var->type = value_type (value); install_new_value (var, value, 1 /* Initial assignment */); /* Set language info */ |