Daniel P. Berrange wrote:
On Thu, Oct 02, 2008 at 03:41:21PM -0400, Cole Robinson wrote:
> Currently, most src/* files have their own ReportError
> function. Some support printf style arguments, others
> only allow reporting a single string message. The code
> for all of them does virtually the same thing, possibly
> passing a different constant off to another function.
>
> The attached patch adds a function to virterror.c which
> encapsulates the common ReportError logic. I used this
> to replace qemudReportError with a macro, which also
> allows passing off filename and line number info if
> we wanted to do something with it later.
>
> I did just the one function conversion to see what
> people think: if I'm missing something, or ideas for
> anything else to add. Seems to work as expected in
> my testing.
Basically a good idea - we've discussed doing exactly this in the past.
You can do further though, and kill off the 'dom' and 'net' parameters
here too. Those are deprecated and should always be left NULL these
days.
Sounds good.
Likewise passing the filename/linenr is not much use - if a
particular error message wants to include file/line number then they
can be includes as args to the printf fmt string.
Hmm, I kind of like the idea of having this info by default,
rather than offloading it to the error message. We could
for example append filename:lineno to all error messages if
debugging is enabled, or stick the data as extra string or
int info to RaiseError.
I know there have been times when, using virt-manager/
virtinst, libvirt prints some generic lookup error msg,
yet nothing seems to fail. It would be nice to get a
definitive line number of the culprit just by using
LIBVIRT_DEBUG.
Thanks,
Cole