xterm窗口不能在Linux上保持,它出现然后消失得非常快



我正在用GDB调试Linux上的mpic++。

我不能使用以下命令:

xterm -e gdb mpirun -np 1 ./myApplication

打开可执行程序./myApplication的窗口:xterm终端出现,然后立即消失。

为什么会发生这种情况?

我可以打开一个xterm:

xterm or xterm -e gdb. 

任何帮助都是非常感激的。

@chatan几乎是对的。

如果你想在一个程序上调用gdb,同时向该程序传递参数,你需要使用gdb的--args选项。例如(我没有mpirun,所以我将使用/bin/sleep):

$ gdb --args /bin/echo hello
[...]
Reading symbols from /bin/echo...(no debugging symbols found)...done.
(gdb) run
Starting program: /bin/echo hello
hello
Program exited normally.

gdb不自动启动运行程序;等待输入

没有--args选项,gdb-np作为gdb选项,而不是作为mpirun的参数。由于gdb没有-np选项,因此它以错误消息结束:

$ gdb mpirun -np 1 ./myApplication
gdb: unrecognized option '-np'
Use `gdb --help' for a complete list of options.

当您运行xterm -e gdb mpirun -np 1 ./myApplication时,xterm运行,它调用gdb, gdb以错误消息终止,xterm在您有机会看到消息之前终止。

那么这个就可以了:

xterm -e gdb --args mpirun -np 1 ./myApplication

当然,您仍然需要在gdb中键入run命令来调用mpirun。(如果您正在使用gdb,您可能已经知道了。)

为将来参考,如果您在xterm -e下运行程序有问题,请尝试单独运行它。

无论如何,您的命令都不会按照您期望的方式工作。GDB将忽略'mpirun'之后的参数。没有任何参数的裸mpirun命令将立即退出(只需尝试在终端中手动运行mpirun)。由于您的xterm是为执行该命令而启动的,因此在该进程完成后它就会消失。

你需要做的是,打开一个xterm。执行"gdb mpirun"命令。

您应该在gdb命令提示符中结束。在这个提示符下,您需要发出以下命令:

1 ./myApplication
现在您的应用程序应该在gdb中运行。

最新更新