Передать строку в GDB через txt-файл

#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 предоставить отдельный способ перенаправления ввода и вывода отладчика.