linux核心转储有线程cpu使用信息吗

问题描述 投票:0回答:3

由于我对 Linux 和核心转储相当陌生,所以我不确定核心转储中存储了什么样的信息。这让我想知道是否有一个 GDB 命令可以从核心转储文件中检索线程的 CPU 使用率。就像您从“top”命令获得的 CPU 使用率百分比一样。也很高兴获得内存使用情况。

我正在重新表述我之前发布的问题,以更加关注我正在寻找的答案。 参考:如何诊断linux中的python进程占用CPU

linux multithreading cpu-usage coredump
3个回答
3
投票

不,无法从核心转储中获取有关 CPU 使用情况的信息。

核心转储只是进程死亡时内存的快照。任何动态历史记录都不可用:CPU 品牌/型号/频率、系统负载、其他进程的数量、内核调度信息等。

作为副作用,只要您知道生成 coredump 的系统上的可用内存,您就可以获得内存使用信息:由于 coredump 是进程的内存,因此进程使用的内存越多,则越大coredump(一般来说,也有一些例外,例如代码转储中未包含的内存区域)。


1
投票

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


1
投票

将来,您可以很容易地收集这些数据——让您的进程定期收集每个线程的内存使用情况,并在调试时在核心中寻找该变量。

© www.soinside.com 2019 - 2024. All rights reserved.