Как перенаправить STDOUT программы в STDIN программы, отлаженной в GDB? - PullRequest
1 голос
/ 03 апреля 2019

Я обычно перенаправляю STDOUT в другую программу, используя:

python -c 'print("HelloWorld")' | ./myprog

Я знаю, что могу предоставить содержимое файла как STDIN для отлаженной программы в GDB:

(gdb) run myprog < input.txt

Однако, как я могу сделать что-то вроде:

(gdb) run mypprog < python -c 'print("HelloWorld")'

без предварительного создания файла с выводом python -c '...'?

1 Ответ

1 голос
/ 03 апреля 2019

Один из способов - подключить GDB к уже запущенному процессу.Найдите его pid с помощью ps или top.Допустим, это 37. Затем запустите

(gdb) attach 37

Это, вероятно, не сработает для вашего случая с очень коротким временем выполнения.Другой подход заключается в использовании fifo .

mkfifo fifo
python -c 'print("Hello World")' > fifo &
gdb myprog
run < fifo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...