gpt4 book ai didi

linux - BASH 从 GDB 读取提示

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:27 24 4
gpt4 key购买 nike

我的意图如下。我正在调试一个用 gcc 从 .c 脚本编译的目标文件。让我们称这个编译脚本为“foo”。当我在 mac 上从终端运行命令时:

gdb -q ./foo

我得到以下输出:

Reading symbols from ./foo...Reading symbols from /Users/john/Documents....done.
done.

我立即从 shell 中得到如下提示:

(gdb) "Shell waiting for my input command here from keyboard"

此时我想自动输入某些命令,例如:break、list、x/x“.c 文件中的符号”、x/s“.c 文件中的符号”等等。对于这种自动化,我想使用一些 bash 脚本,到目前为止,我有以下内容:

#!/bin/bash

SCRIPT=$1
gstdbuf -oL gdb -q $SCRIPT |
while read -r LINE
do
echo "$LINE"
done

在执行此 bash 脚本时,我在终端的 shell 上看到以下输出:

Reading symbols from ./foo...Reading symbols from /Users/john/Documents....done.
done.

但我没有看到:

(gdb) "Shell waiting for my input command here from keyboard"

如何从我的 shell 脚本中的 gdb 进程中检测到此提示,以便能够自动执行我想要的命令而不是手动输入它们?

非常感谢!

最佳答案

您可以创建一个文件 .gdbinit 并将初始命令放在那里。如果您将以下行添加到 $HOME/.gdbinitgdb 将在启动时执行它们:

add-auto-load-safe-path /path/to/project/.gdbinit

现在您可以将命令放入 /path/to/project/.gdbinit,如下所示:

break main
run --foo=bar

关于linux - BASH 从 GDB 读取提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45652733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com