【发布时间】:2021-11-09 22:44:51
【问题描述】:
我正在使用 macOS Big Sur、v11.5.2 和 GDB v10.2
我以前见过类似的问题,但没有明确的答案。 我正在尝试使用输入重定向在 GDB 中运行程序
sudo gdb ./executable
r < input.txt
但是当我这样做时,shell 挂起,等待手动输入而不是从文件中读取输入。我已经完成了为 GDB 创建代码签名证书的过程,以 sudo 运行,但出现了同样的问题。
我也知道 MacOS 的 SIP 以及它是如何产生干扰的。 This link,来自这个 StackOverflow post 似乎没有提供任何解决方案。至少任何保持在 GDB 中使用输入/输出重定向的能力的解决方案。
如果有人有答案并且可以在这里清楚地表达出来,我将不胜感激。
【问题讨论】:
-
你的 GDB 初始化文件中有
set startup-with-shell off吗?有时在 MacOS 系统上建议这样做。如果已设置,则不会使用任何 shell,"<"和"input.txt"将简单地作为参数传递给程序。 -
我的初始化文件中没有那个。虽然那不是我想要的。我不希望将“
-
好的,我只是想消除这种可能性。在 GDB 中,您可以输入
start然后输入print argv,看看您的程序得到什么参数吗? -
我刚刚选择使用
lldb而不是gdb,就像一个魅力。
标签: c macos gdb macos-big-sur