GDB не будет принимать перенаправление stdin в Emacs - PullRequest
2 голосов
/ 20 апреля 2009

Я пытаюсь отладить программу, используя режим GDB в Emacs. Он был скомпилирован с G ++, и я использую Cygwin. Моя программа принимает один аргумент командной строки, а также принимает входные данные из stdin, которые я перенаправляю из файла, например:

program.exe inputFile.dat <otherInput.dat

Проблема в том, что GDB отправляет строку

"<otherInput.dat"

в качестве аргумента командной строки вместо перенаправления стандартного ввода. Как заставить GDB перенаправить стандартный ввод?

EDIT:

В GDB я использую команду:

run inputFile.dat <otherInput.dat

Также не работает, когда я использую gdb вне emacs.

РЕДАКТИРОВАТЬ # 2:

dfa указал на похожий вопрос: Как загрузить программу, считывающую стандартный ввод и принимающую параметры в gdb?

К сожалению, принятый ответ на этот вопрос не работает для меня ... Может ли это быть ошибка, связанная с Cygwin?

Ответы [ 2 ]

3 голосов
/ 20 апреля 2009

Похоже, вы должны использовать команду run:

Вы можете перенаправить ввод и / или вывод вашей программы с помощью перенаправления оболочки с помощью команды run>. Например,

run > outfile

http://sourceware.org/gdb/current/onlinedocs/gdb_5.html#SEC24

2 голосов
/ 21 апреля 2009

Если вы используете bash, вы можете немедленно подключить gdb к процессу, выполнив PROGRAM ARGS < FILE & jobs -x gdb PROGRAM %1. В зависимости от используемой вами оболочки, вы можете столкнуться с необходимостью использовать более креативные методы (возможно, включающие вывод перенаправления ps -C в командную строку GDB).

...