Как отладить программу на C ++, которая принимает входные данные из сценария в GDB

Справочная информация: Программа на C ++ (LAMMPS — с открытым исходным кодом) принимает входной скрипт, который имеет все команды, которые должны быть выполнены. Исполняемый файл называется «lmp_fedora», входной скрипт — «in.hit». Команда запуска программы «./lmp_fedora < in.hit»

Моя проблема: я пытаюсь отладить один из файлов .cpp в LAMMPS.

Мои попытки: 1. Я попробовал «gdb lmp_fedora» < in.hit «, но это не удалось. 2. Также попытался найти pid запущенной программы, используя ps aux, но не был уверен, какой это был идентификатор.

Мой вопрос: как вы отлаживаете входной скрипт (который имеет команды, связанные с проектом c ++), используя gdb?

1

Решение

Вы используете GDB run команда:

$ gdb lmp_fedora
(gdb) run <in.hit

Из справки:

(gdb) help run
Start debugged program.  You may specify arguments to give it.
Args may include "*", or "[...]"; they are expanded using "sh".
Input and output redirection with ">", "<", or ">>" are also allowed.

With no arguments, uses arguments last specified (with "run" or "set args").
To cancel previous arguments and run with no arguments,
use "set args" without arguments.
2

Другие решения

Когда ты сказал gdb foo < bar это означает bar является входом в gdbне foo,

Я думаю, что вы хотите использовать это gdb команда set args,

1

По вопросам рекламы [email protected]