This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
MI error messages
- From: Nick Roberts <nickrob at snap dot net dot nz>
- To: Vladimir Prus <ghost at cs dot msu dot su>
- Cc: gdb at sources dot redhat dot com
- Date: Sat, 11 Feb 2006 09:16:40 +1300
- Subject: MI error messages
- References: <dshtpc$frg$1@sea.gmane.org>
> Below is a short MI session:
>
> (gdb) -var-assign KDEVTMP br
> &"mi_cmd_var_assign: Could not assign expression to varible object\n"
> ^error,msg="mi_cmd_var_assign: Could not assign expression to varible
>
> The good thing about this is that I can easily detect that's an error, and
> show a message to the user. The bad thing is that the message includes
> 'mi_cmd_var_assign:' part. For end user of KDevelop, or even end user of
> gdb, this makes no sense -- it's the name of internal function. It can only
> confuse.
In June of last year there was a thread ([PATCH] MI error messages) about this
subject (see archives). I think it was similarly suggested that the procedure
name was unnecessary. Some error messages are for the user, and some should
only occur if there is a bug in the front end and should never really be seen
by the user. The example you give above is the latter. I think these
shouldn't also get reported on the log/error stream (prefixed with &). In the
end we didn't resolve the issue and nothing was changed.
> So, could somebody tell:
>
> 1. Is it guaranteed that all MI error message start with function name and a
> semicolon?
Not currently, look at the sources.
> 2. If not, is there any regexp that can be used to remove the function name,
> that's guaranteed to work for all current and future MI error messages.
> Removing anything before first semicolon is risky -- error message can
> contain ':' for other reasons.
If you are going to rely on any syntax, you need to check current messages
and document any rules for future reference.
> 3. If not, can the function name be removed?
I think error reporting needs to be overhauled. Many changes could be made,
removing function names is one of them.
Nick