• M
    error: Use error_report_err() instead of monitor_printf() · 193227f9
    Markus Armbruster 提交于
    Both error_report_err() and monitor_printf() print to the same
    destination when monitor_printf() is used correctly, i.e. within an
    HMP monitor.  Elsewhere, monitor_printf() does nothing, while
    error_report_err() reports to stderr.
    
    Most changed functions are HMP command handlers.  These should only
    run within an HMP monitor.  The one exception is bdrv_password_cb(),
    which should also only run within an HMP monitor.
    
    Four command handlers prefix the error message with the command name:
    balloon, migrate_set_capability, migrate_set_parameter, migrate.
    Pointless, drop.
    
    Unlike monitor_printf(), error_report_err() uses the error whole
    instead of just its message obtained with error_get_pretty().  This
    avoids suppressing its hint (see commit 50b7b000).  Example:
    
        (qemu) device_add ivshmem,id=666
        Parameter 'id' expects an identifier
        Identifiers consist of letters, digits, '-', '.', '_', starting with a letter.
        Try "help device_add" for more information
    
    The "Identifiers consist of..." line is new with this patch.
    
    Coccinelle semantic patch:
    
        @@
        expression M, E;
        @@
        -    monitor_printf(M, "%s\n", error_get_pretty(E));
        -    error_free(E);
        +    error_report_err(E);
        @r1@
        expression M, E;
        format F;
        position p;
        @@
        -    monitor_printf(M, "...%@F@\n", error_get_pretty(E));@p
        -    error_free(E);
        +    error_report_err(E);
        @script:python@
    	p << r1.p;
        @@
        print "%s:%s:%s: prefix dropped" % (p[0].file, p[0].line, p[0].column)
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Message-Id: <1450452927-8346-4-git-send-email-armbru@redhat.com>
    193227f9
monitor.c 112.7 KB