xterm窗口不能在Linux上保持,它出现然后消失得非常快
xterm window cannot be held on Linux, it appears and then disappears very fast
我正在用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相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 将地址分配给本地指针后,公共对象的变量将消失
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- boost::asio如何生成多个协同程序,然后加入它们
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- 在std::thread中,joinable()然后join()线程安全吗
- C++:如何读取分离变量,然后读取向量
- 为什么我的递归函数按降序打印,然后按升序打印?
- 等待整个 omp 块完成,然后再调用第二个函数
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使变量从 x 到 y,然后从 y 返回到 x 并始终重复该过程
- 应用投影矩阵后对象消失
- 控制台窗口闪烁C++然后消失
- 图像在隐藏时消失,然后重新显示ListView
- xterm窗口不能在Linux上保持,它出现然后消失得非常快
- 当用矢量数学将某物移动到一个点时,敌人到达那里然后消失
- CHTMLView元素页面加载然后消失