[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 1/2] monitor: cleanup parsing of cmd name and
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/2] monitor: cleanup parsing of cmd name and cmd arguments |
Date: |
Fri, 29 May 2015 09:57:19 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Bandan Das <address@hidden> writes:
> Eric Blake <address@hidden> writes:
>
>> On 05/28/2015 12:48 PM, Bandan Das wrote:
>>> Markus Armbruster <address@hidden> writes:
>>>
>>>> Bandan Das <address@hidden> writes:
>>>>
>>>>> There's too much going on in monitor_parse_command().
>>>>> Split up the arguments parsing bits into a separate function
>>>>> monitor_parse_arguments(). Let the original function check for
>>>>> command validity and sub-commands if any and return data (*cmd)
>>>>> that the newly introduced function can process and return a
>>>>> QDict. Also, pass a pointer to the cmdline to track current
>>>>> parser location.
>>
>>>>>
>>>>> #ifdef DEBUG
>>>>> - monitor_printf(mon, "command='%s', start='%d'\n", cmdline, start);
>>>>> + monitor_printf(mon, "command='%s', start='%d'\n", cmdline, *start);
>>>>
>>>> Would this compile if we defined DEBUG?
>>>
>>> No, it won't :) Sorry, will fix.
>>
>> That's why I like solutions that can't bitrot; something like this
>> framework (needs a bit more to actually compile, but you get the picture):
>>
>> #ifdef DEBUG
>> # define DEBUG_MONITOR 1
>> #else
>> # define DEBUG_MONITOR 0
>> #endif
>> #define DEBUG_MONITOR_PRINTF(stuff...) do { \
>> if (DEBUG_MONITOR) { \
>> monitor_printf(stuff...); \
>> } \
>> } while (0)
>>
>> then you can avoid the #ifdef in the function body, and just do
>> DEBUG_MONITOR_PRINTF(mon, "command='%s'....) and the compiler will
>> always check for correct format vs. arguments, even when debugging is off.
>>
>> Of course, adding such a framework in this file would be a separate
>> patch, and does not have to be done as a prerequisite of this series.
>
> Thanks, Eric. Ok, I will post patch(es) separately.
The preferred solution in QEMU is tracepoints.
In this case, I wouldn't mind ditching the debugging prints instead.
All three of them.
[Qemu-devel] [PATCH v3 2/2] When a command fails due to incorrect syntax or input, suggest using the "help" command to get more information about the command. This is only applicable for HMP., Bandan Das, 2015/05/27