[patch] MI: Error out on -var-create invalid FRAME-ADDR
Jan Kratochvil
jan.kratochvil@redhat.com
Mon Aug 10 17:47:00 GMT 2009
On Mon, 10 Aug 2009 18:54:52 +0200, Vladimir Prus wrote:
> Jan Kratochvil wrote:
>
> > - Â Â Â if (innermost_block && fi != NULL)
> > + Â Â Â if (innermost_block)
> > {
> > +Â Â Â Â Â Â Â Â /* User could specify explicit FRAME-ADDR which was not found but
> > +Â Â Â Â Â Â Â Â Â EXPRESSION is frame specific and we would not be able to evaluate
> > +Â Â Â Â Â Â Â Â Â it correctly next time. Â With VALID_BLOCK set we must also set
> > +Â Â Â Â Â Â Â Â Â FRAME and THREAD_ID. Â */
> > +Â Â Â Â Â Â Â Â if (fi == NULL)
> > +Â Â Â Â Â Â Â Â Â {
> > +Â Â Â Â Â Â Â Â Â Â fprintf_unfiltered (gdb_stderr, "Failed to find the specified"
> > +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â " frame.\n");
> > +Â Â Â Â Â Â Â Â Â Â return NULL;
> > +Â Â Â Â Â Â Â Â Â }
>
> Why is this fprintf + NULL return, as opposed to error?
I had there error before but changed it to match the code several lines above:
/* Don't allow variables to be created for types. */
if (var->root->exp->elts[0].opcode == OP_TYPE)
{
do_cleanups (old_chain);
fprintf_unfiltered (gdb_stderr, "Attempt to use a type name"
" as an expression.\n");
return NULL;
}
+
mi_gdb_test "-var-create int * int" \
"&\"Attempt to use a type name as an expression.\\\\n\".*\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
"create int"
Expecting this former case cannot be changed due to MI2 compatibility but I am
free to change the new error "Failed to find the specified frame." to use
error(). Check it in with or without error()?
Thanks,
Jan
More information about the Gdb-patches
mailing list