我有一个程序,我想通过emacs使用gdb进行调试.为了运行这个程序的开发版本,我有一个shell脚本,我可以使用它设置调用环境以查看正确的库等.我不能理清的是如何请求emacs/gud来源这个执行gdb之前的文件.
我尝试过使用像"source env.sourceme && gdb my_program"这样的命令,但是emacs抱怨它不知道"源"是什么意思.我想它并不是真的在shell中运行gdb,所以这些技巧都行不通.
那么,我怎样才能说服gud/emacs /在我的自定义环境中运行gdb呢?我有一个hacky解决方案,但我觉得我必须遗漏一些东西.
gdb有自己的语法来设置环境变量:
set environment varname [=value]
Run Code Online (Sandbox Code Playgroud)
使用上面的语法将变量定义写入文件,而不是shell脚本,然后source使用正在运行的gdb会话中的文件.请注意,这不是bash的内置source命令,而是gdb自己的命令,因此自然的bash风格的环境变量定义将无效.
你的解决方案是什么?
为什么不直接使用一个包装脚本来获取env.sourceme然后运行 gdb 呢?
#!/usr/bin/env bash
source env.sourceme
gdb -i=mi $1
Run Code Online (Sandbox Code Playgroud)