#macos #gdb
#macos #gdb
Вопрос:
Итак, у меня есть простой код на C:
#include lt;iostreamgt; #include lt;stringgt; int main(int argc, char *argv[]) { std::string name; std::cout lt;lt; "Name?n"; std::cin gt;gt; name; std::cout lt;lt; "sup, " lt;lt; name lt;lt; "n nice to meet you!n have a good day.n"; return 0; }
И я пытаюсь передать «имя» через файл:
Терминал Mac:
% touch input.txt % echo 'Vasya' gt; input.txt % gdb my_prog
Затем, когда я наберу :
(gdb) run lt; input.txt
Он работает как обычно, без получения «имени» из txt.
Комментарии:
1. Я думаю, что проблема в том, что пользователи Mac GDB должны иметь
set startup-with-shell off
в своем .gdbinit, но без оболочки нет возможности выполнять перенаправления. Или шарит. Возможно, вам потребуется попросить разработчиков GDB предоставить отдельный способ перенаправления ввода и вывода отладчика.