[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 4/4] linux-user: pass strace argument in exec
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v2 4/4] linux-user: pass strace argument in execve |
Date: |
Wed, 15 Jun 2016 22:37:14 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 |
This is not needed: if you use QEMU_STRACE environment variable, it is
propagated to the child processes (this is also true for "-L" and
QEMU_LD_PREFIX).
In fact, your patch 2 breaks this...
Did you try to use a statically linked qemu?
IMHO, the best way to avoid environment problem is to have a qemu
ignoring it, not modifying it.
Thanks,
Laurent
Le 14/06/2016 à 21:26, Joel Holdsworth a écrit :
> ---
> linux-user/syscall.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 1513f0f..00ee7a6 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6778,6 +6778,8 @@ static abi_long qemu_execve(char *filename, char
> *argv[],
> qemu_argc += undef_envc * 2;
>
> /* allocate the argument list */
> + if (do_strace)
> + qemu_argc++;
> argp = qemu_argp = alloca((qemu_argc + 1) * sizeof(void *));
>
> /* set up the qemu arguments */
> @@ -6785,6 +6787,9 @@ static abi_long qemu_execve(char *filename, char
> *argv[],
> *argp++ = strdup("-L");
> *argp++ = strdup(path("/"));
>
> + if (do_strace)
> + *argp++ = strdup("-strace");
> +
> /* add arguments for the enironment variables */
> for (i = 0; i < def_envc; i++) {
> *argp++ = strdup("-E");
>