【发布时间】:2011-04-11 11:17:23
【问题描述】:
我在没有 sudo/su 访问权限的 Linux 机器上开发 MPI 程序。由于我的程序当前存在段错误,我想通过 gdb 检查核心转储。不幸的是,由于程序是多线程的,所有线程都写入一个核心转储。所以我希望能够将 PID 附加到每个进程的每个单独的核心转储中。
我知道有一种方法可以通过 /proc/sys/kernel/core_pattern 来实现,但是我无权写入。
感谢您的帮助。
【问题讨论】:
-
多线程与您的问题无关(GDB 可以很好地处理包含多个线程的核心文件)。你的问题是你有多进程程序。我不明白为什么一个“核心”对你来说是不够的——大概你的其他进程也会以同样的方式崩溃。即使他们不这样做,您也应该先解决第一个问题(在第一个核心中发现),然后再继续解决下一个问题。
-
@Employed Russian:一个进程遇到段错误并不意味着任何其他进程也会出现段错误。
-
@semiuseless 确实如此,但即使他们不这样做,您也应该解决您看到的第一个问题无论如何。因此,一个核心转储就足以让您修复一些问题!
标签: multithreading gdb mpi coredump