【问题标题】:In GDB, how can I set 'exec-wrapper env' to multiple environmental variables?在 GDB 中,如何将 'exec-wrapper env' 设置为多个环境变量?
【发布时间】:2014-12-17 01:35:00
【问题描述】:

在 GDB 中,您可以使用 set exec-wrapper env 'MYENVVAR=...' 为进程设置环境变量。这很好用,但我不确定如何设置多个 - 是否有某种分隔符必须使用?我想为一个进程同时设置LD_PRELOADLD_LIBRARY_PATH。我该怎么做?

【问题讨论】:

    标签: gdb environment-variables environment


    【解决方案1】:

    你可以使用

    set exec-wrapper env VAR1=val1 VAR2=val2
    

    设置多个环境变量。应该为您的 shell 适当地引用这些值,因此在它们周围加上单引号是个好主意。

    稍微详细一点:

    set exec-wrapper 命令设置一个字符串变量以包含命令行的其余部分。

    当需要运行您的可执行文件时,gdb 会执行类似于以下伪代码的操作:

    shell_cmd = "exec ";
    if (exec_wrapper)
         shell_cmd += exec_wrapper + " ";
    shell_cmd += quote_shell_metacharacters(exec_file);
    execl(getenv("SHELL"), "sh", "-c", shell_cmd, (char *)0);
    

    因此,exec-wrapper 可以是任何在您的 shell 中以 "exec " 开头时有意义的命令行。

    【讨论】:

    • 谢谢,非常详尽的回答!
    猜你喜欢
    • 2011-12-11
    • 2020-02-14
    • 2022-11-02
    • 2016-08-11
    • 2015-10-21
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2021-08-19
    相关资源
    最近更新 更多