【发布时间】:2014-12-17 01:35:00
【问题描述】:
在 GDB 中,您可以使用 set exec-wrapper env 'MYENVVAR=...' 为进程设置环境变量。这很好用,但我不确定如何设置多个 - 是否有某种分隔符必须使用?我想为一个进程同时设置LD_PRELOAD 和LD_LIBRARY_PATH。我该怎么做?
【问题讨论】:
标签: gdb environment-variables environment
在 GDB 中,您可以使用 set exec-wrapper env 'MYENVVAR=...' 为进程设置环境变量。这很好用,但我不确定如何设置多个 - 是否有某种分隔符必须使用?我想为一个进程同时设置LD_PRELOAD 和LD_LIBRARY_PATH。我该怎么做?
【问题讨论】:
标签: gdb environment-variables environment
你可以使用
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 " 开头时有意义的命令行。
【讨论】: