gdb не принимает перенаправление stdin в Emacs

Я пытаюсь отладить программу в режиме gdb в emacs. Он был скомпилирован с помощью g ++, а я использую cygwin. Моя программа принимает один аргумент командной строки, а также вводит данные со стандартного ввода, который я перенаправляю из файла, например:

program.exe inputFile.dat <otherInput.dat

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

"<otherInput.dat"

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

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

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

run inputFile.dat <otherInput.dat

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

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

dfa указал на аналогичный вопрос: Как загрузить программа читает stdin и принимает параметры в gdb?

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


person Paul    schedule 20.04.2009    source источник
comment


Ответы (2)


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

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

run > outfile

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

person Bastien Léonard    schedule 20.04.2009
comment
это то, что я делаю, но это не перенаправляет. - person Paul; 20.04.2009
comment
Вот почему: cygwin.com/ml/cygwin/1998-11/ msg00978.html 1988 г. и, по-моему, до сих пор не исправлен. - person ; 21.04.2009

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

person coppro    schedule 21.04.2009