Commit 8f480de0 authored by Dr. David Alan Gilbert's avatar Dr. David Alan Gilbert Committed by Michael S. Tsirkin
Browse files

Add 'debug-threads' suboption to --name



Add flag storage to qemu-thread-* to store the namethreads flag

Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
parent 5d12f961
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -59,5 +59,6 @@ void *qemu_thread_join(QemuThread *thread);
void qemu_thread_get_self(QemuThread *thread);
bool qemu_thread_is_self(QemuThread *thread);
void qemu_thread_exit(void *retval);
void qemu_thread_naming(bool enable);

#endif
+5 −2
Original line number Diff line number Diff line
@@ -328,9 +328,11 @@ possible drivers and properties, use @code{-device help} and
ETEXI

DEF("name", HAS_ARG, QEMU_OPTION_name,
    "-name string1[,process=string2]\n"
    "-name string1[,process=string2][,debug-threads=on|off]\n"
    "                set the name of the guest\n"
    "                string1 sets the window title and string2 the process name (on Linux)\n",
    "                string1 sets the window title and string2 the process name (on Linux)\n"
    "                When debug-threads is enabled, individual threads are given a separate name (on Linux)\n"
    "                NOTE: The thread names are for debugging and not a stable API.\n",
    QEMU_ARCH_ALL)
STEXI
@item -name @var{name}
@@ -339,6 +341,7 @@ Sets the @var{name} of the guest.
This name will be displayed in the SDL window caption.
The @var{name} will also be used for the VNC server.
Also optionally set the top visible process name in Linux.
Naming of individual threads can also be enabled on Linux to aid debugging.
ETEXI

DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
+7 −0
Original line number Diff line number Diff line
@@ -27,6 +27,13 @@
#include "qemu/thread.h"
#include "qemu/atomic.h"

static bool name_threads;

void qemu_thread_naming(bool enable)
{
    name_threads = enable;
}

static void error_exit(int err, const char *msg)
{
    fprintf(stderr, "qemu: %s: %s\n", msg, strerror(err));
+8 −0
Original line number Diff line number Diff line
@@ -16,6 +16,14 @@
#include <assert.h>
#include <limits.h>

static bool name_threads;

void qemu_thread_naming(bool enable)
{
    /* But note we don't actually name them on Windows yet */
    name_threads = enable;
}

static void error_exit(int err, const char *msg)
{
    char *pstr;
+9 −0
Original line number Diff line number Diff line
@@ -495,6 +495,12 @@ static QemuOptsList qemu_name_opts = {
            .name = "process",
            .type = QEMU_OPT_STRING,
            .help = "Sets the name of the QEMU process, as shown in top etc",
        }, {
            .name = "debug-threads",
            .type = QEMU_OPT_BOOL,
            .help = "When enabled, name the individual threads; defaults off.\n"
                    "NOTE: The thread names are for debugging and not a\n"
                    "stable API.",
        },
        { /* End of list */ }
    },
@@ -954,6 +960,9 @@ static void parse_name(QemuOpts *opts)
{
    const char *proc_name;

    if (qemu_opt_get(opts, "debug-threads")) {
        qemu_thread_naming(qemu_opt_get_bool(opts, "debug-threads", false));
    }
    qemu_name = qemu_opt_get(opts, "guest");

    proc_name = qemu_opt_get(opts, "process");