qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 1/5] util: Introduce error reporting function


From: Thomas Huth
Subject: Re: [Qemu-devel] [PATCH v6 1/5] util: Introduce error reporting functions with fatal/abort
Date: Tue, 2 Feb 2016 22:47:35 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0

On 02.02.2016 19:53, Markus Armbruster wrote:
> Lluís Vilanova <address@hidden> writes:
...

>> diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
>> index 7ab2355..6c2f142 100644
>> --- a/include/qemu/error-report.h
>> +++ b/include/qemu/error-report.h
>> @@ -43,4 +43,23 @@ void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 
>> 2);
>>  const char *error_get_progname(void);
>>  extern bool enable_timestamp_msg;
>>  
>> +/* Report message and exit with error */
>> +void QEMU_NORETURN error_vreport_fatal(const char *fmt, va_list ap) 
>> GCC_FMT_ATTR(1, 0);
>> +void QEMU_NORETURN error_report_fatal(const char *fmt, ...) GCC_FMT_ATTR(1, 
>> 2);
> 
> This lets people write things like
> 
>     error_report_fatal("The sky is falling");
> 
> instead of
> 
>     error_report("The sky is falling");
>     exit(1);
> 
> or
> 
>     fprintf(stderr, "The sky is falling\n");
>     exit(1);
> 
> I don't think that's an improvement in clarity.

The problem is not the existing code, but that in a couple of new
patches, I've now already seen that people are trying to use

     error_setg(&error_fatal, ... );

to do error reporting - which is IMHO the most ugliest way to do this,
because I'd really not expect error_setg() to (always) exit QEMU when I
quickly read through the sources.
We fortunately do not have that in the sources yet (only some few spots
with error_abort), but to prevent that people start using that, it would
be good to have a error_report_fatal() function instead, I think.

Alternatively, if you really want to see the exit(1) in the sources, I
think this should be mentioned in the coding guidelines ... or are you
fine with error_setg(&error_fatal, ...), Markus?

 Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]