У меня есть программа, которая принимает ввод из стандартного ввода, а также принимает некоторые параметры из командной строки. Выглядит это так:
cat input.txt > myprogram -path "/home/user/work"
Пытаюсь отладить код с помощью gdb внутри emacs, с помощью Mx gdb, пытаюсь загрузить программу командой:
gdb cat input.txt > myprogram -path "/home/user/work"
Однако GDB это не нравится.
Вопрос припрятал отсюда . К сожалению, я не понимаю решения и не уверен, что делать, кроме компиляции с -g
опцией и запуска команды Mx gdb.
emacs
gdb
redirect
command-line-arguments
vinc456
источник
источник
<
и вinput.txt
качествеargv
аргументов моей программы :( Я продолжу копаться в этих ответах с моим gdb 8.2.1: stackoverflow.com/questions/3544325/…Сделать это можно несколькими способами:
или
или
где команда gdb
run
(r
) по умолчанию использует аргументы, установленные ранее сset args
.источник
gdb -ex 'r -path /home/user/work < input.txt' myprogram
в третьем варианте?gdb -ex 'b main' -ex 'r -path /home/user/work < input.txt' myprogram
.Для полноты картины при запуске сеанса отладки также есть опция --args. т.е.)
источник
gdb --args yourprog.out input.txt
И если вам не нужно отлаживать с самого начала, вы также можете подключиться к уже запущенному процессу, используя:
где xxx - идентификатор процесса. Тогда вам не нужно сообщать GDB начальные аргументы.
источник