Как отладить программу, которая использует ввод из вспомогательного файла TXT в GDB? - PullRequest
1 голос
/ 29 апреля 2019

Я хочу отладить файл, скажем file.c, и этот файл читает информацию из txt-файла, скажем input.txt. Обычно, чтобы скомпилировать и запустить программу, я бы сделал следующее:

gcc -std=c99 -g file.c -o file.exe

и для отладки я бы попробовал следующее:

gdb ./file.exe input.txt

Однако это не работает и завершается неудачно с No such file exits. '(null)': Bad address, когда программа file.c пытается открыть файл, указанный в argv [1], для которого input.txt.

Я пробовал следующие методы:

1. gdb ./file.exe
   (gdb) run < input.txt
2. gdb ./file.exe
   b main
   (gdb) r
   (gdb) call (int)dup2(open("input.txt",0),0)
   $1 = 0

Все с тем же результатом, как описано выше ... No such file exits. '(null)': Bad address

Код всего лишь:

FILE *input = fopen(argv[1],"r");

1 Ответ

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

До

gdb --args ./file.exe file.txt
b main
run

или до

gdb ./file.exe
b main
run file.txt
...