如何调试从gdb中的脚本获取输入的C ++程序

时间:2014-06-23 00:07:26

标签: c++ linux lammps

背景信息:C ++程序(LAMMPS - 一个开源)接受一个包含要执行的所有命令的输入脚本。可执行文件名为“lmp_fedora”,输入脚本名为“in.hit”。程序的运行命令“./lmp_fedora< in.hit”

我的问题:我正在尝试调试LAMMPS中的一个.cpp文件。

我的尝试:1。我尝试了“gdb lmp_fedora< in.hit”,但它失败了。 2.还尝试使用ps aux找到正在运行的程序的pid,但不确定它是哪个id。

我的问题:如何使用gdb调试输入脚本(具有链接到c ++项目的命令)?

2 个答案:

答案 0 :(得分:2)

您使用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.

答案 1 :(得分:1)

当您说gdb foo < bar表示bar输入gdb时,而不是foo

我认为你想要使用的是gdb命令set args