我有一个Linux可执行文件,我可以在命令行上运行它,但首先,我应该使用
source ./somefile
如果我不source
它,则可执行文件崩溃了。我也可以在dbg下运行该文件。但我还需要在gdb中source somefile
。我的意思是,我已经使source ./somefile
然后运行gdb并在其中运行可执行文件,可执行文件崩溃就像不使用source ./somefile。
顺便说一下, somefile 我应该source
包含一些EXPORT = bla bla定义。
Executable是一个嵌入式qt软件,在imx6板上运行。获取somefile对qt库进行了一些定义。当我运行可执行文件时没有获取somefile并且在获取它然后在gdb中运行时的崩溃消息是完全相同的。所以我认为在source somefile之后,如果我在gdb中运行可执行文件,那么gdb似乎并不知道库'路径。可能是一种为gdb提供文件的方法。
答案 0 :(得分:2)
我想你是在问如何在gdb中设置环境变量。
您应该使用set environment
,请参阅内置帮助:
(gdb) help set environment
Set environment variable value to give the program.
Arguments are VAR VALUE where VAR is variable name and VALUE is value.
VALUES of environment variables are uninterpreted strings.
This does not affect the program until the next "run" command.
(gdb)
您必须从VAR
获取VALUE
和./somefile
。你不能在gdb提示符中source
,因为它是shell脚本,而不是gdb脚本。
答案 1 :(得分:0)
您可以运行source
命令,稍后在相同的 shell(例如同一终端窗口)中运行gdb
来调试程序。您的source
内置命令设置的环境变量不仅适用于gdb
进程,还适用于已调试的进程。
详细了解Debugging with GDB。