Linux核心转储是否具有线程cpu使用信息

时间:2014-09-17 22:43:42

标签: linux multithreading cpu-usage core

由于我对linux和核心转储相当陌生,我不确定核心转储中存储了哪种信息。它让我想知道是否有一个GDB命令来从Core转储文件中检索线程的CPU%使用率。就像你从顶级'中获得的CPU%使用率一样命令。也很高兴获得内存使用率。

我从以前的帖子中重新提出问题,以便更专注于我正在寻找的答案。 参考:How to diagnose a python process chewing CPU in linux

感谢。

3 个答案:

答案 0 :(得分:3)

不,无法从coredump获取有关CPU使用率的信息。

coredump只是死亡时间过程记忆的快照。任何动态历史记录都不可用:CPU make / model / frequency,系统负载,其他进程数,内核调度信息等。

作为副作用,只要知道生成coredump的系统上可用的内存,就可以获取内存使用信息:由于coredump是进程的内存,所以进程使用的内存越多,更大的coredump(一般来说,有一些例外,例如未包含在codedump中的内存区域)。

答案 1 :(得分:1)

核心转储是崩溃进程的地址空间(内存)的副本。您可以使用它来查看进程使用了​​多少内存(并且可以在崩溃时检查其内存中的所有数据),但它不包含有关CPU使用情况的任何信息。

答案 2 :(得分:1)

将来,您可以轻松地收集这些信息 - 让您的流程定期收集每个线程的内存使用情况,并在调试时在核心中搜索该变量。