Я хочу отладить файл, скажем 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");