有一个不优美但实用的方法,就是在程序中添加如下一段代码:
其功能就相当于插入一个断点,在MPI程序调试中,还可以用来判断该断点之前的程序是否出现导致程序崩溃退出的错误,个人觉得很好用。
这条命令将会产生4个xterms运行gdb,每个实例对应一个进程,就好像在用gdb调试一个串行程序一样。注意的是,不能在SSH终端上使用。
打开新的终端窗口,查看hello进程:
找到相应的进程号后,就可以开启gdb分别对每个进程进行调试。
这条命令运行MPI程序,使用Memchecker
串行调试:
附:用GDB调试程序
http://dsec.pku.edu.cn/~yuhj/wiki/gdb.html