通过emacs运行时设置gdb的环境

abi*_*ham 7 emacs gdb gud

我有一个程序,我想通过emacs使用gdb进行调试.为了运行这个程序的开发版本,我有一个shell脚本,我可以使用它设置调用环境以查看正确的库等.我不能理清的是如何请求emacs/gud来源这个执行gdb之前的文件.

我尝试过使用像"source env.sourceme && gdb my_program"这样的命令,但是emacs抱怨它不知道"源"是什么意思.我想它并不是真的在shell中运行gdb,所以这些技巧都行不通.

那么,我怎样才能说服gud/emacs /在我的自定义环境中运行gdb呢?我有一个hacky解决方案,但我觉得我必须遗漏一些东西.

Tho*_*mas 5

gdb有自己的语法来设置环境变量:

set environment varname [=value]
Run Code Online (Sandbox Code Playgroud)

使用上面的语法将变量定义写入文件,而不是shell脚本,然后source使用正在运行的gdb会话中的文件.请注意,这不是bash的内置source命令,而是gdb自己的命令,因此自然的bash风格的环境变量定义将无效.


eve*_*_jr 3

你的解决方案是什么?

为什么不直接使用一个包装脚本来获取env.sourceme然后运行 ​​gdb 呢?

#!/usr/bin/env bash

source env.sourceme
gdb -i=mi $1
Run Code Online (Sandbox Code Playgroud)