如何在不重启的情况下修改gdbserver --multi的环境变量和工作目录?

How to modify the environment variables and working directory of gdbserver --multi without restarting it?

当我 运行 一个程序在本地使用 environ 打印环境时:

./gdb myprintenv

我可以跨 运行 更改环境变量:

run
set environment asdf=qwer
run

有什么方法可以用 gdbserver --multi 做到这一点吗?

我运行将其设置为:

gdbserver --multi :1234 ./myprintenv

然后在本地:

arm-linux-gnueabihf-gdb -ex 'target extended-remote remotehost:1234' ./myprintenv

然后命令:

set environment asdf=qwer
run

没有效果。

我可以更改变量:

asdf=qwer gdbserver --multi :1234 ./myprintenv

但这很烦人,因为它需要 mon exit,转到板,重新运行,转到主机,重新连接舞蹈。

工作目录也是如此,您可以change with cd locally,但显然不在服务器上。

一种替代方法是每次都使用 SSH 启动 gdbserver 而无需 --multi,就像 Eclipse 所做的那样,但缺点是很难看到标准输出:How can I reach STDIN/STDOUT through a gdbserver session

gdb 中尚不存在此功能。它正在开发中:https://sourceware.org/ml/gdb-patches/2017-08/msg00000.html