gpt4 book ai didi

linux - 不依赖于特定于操作系统的核心转储的崩溃进程的回溯

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:56 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以在不依赖 FreeBSD 或 Linux 中的核心转储的情况下获取崩溃进程的回溯。通常,为了获得正在运行的进程的回溯,我们在 FreeBSD 上运行 bstack PID_OF_PROCESS,在 Linux 上运行 pstack PID_OF_PROCESS

但是一旦进程崩溃,我们需要依赖核心文件来获取回溯,如果我们想执行 bstack 或 pstack,我们也没有 PID。

有没有像内核 API 之类的方法来获取崩溃进程的回溯,而无需在核心文件上执行 gdb?

如果我需要提供有关查询的额外信息,请告诉我。

最佳答案

您可以在 gdb 下运行您的应用程序并制作一些宏,例如:循环中的“where”和“step”命令。在 SIGSEGV 之后,这个宏/脚本将停止,然后您应该能够看到程序的回溯。当然,捕捉有问题的情况可能需要很多时间。

您还可以修改内核以显示用户空间应用程序的整个回溯,但这需要一些内核 API 知识。

也许 valgrind 也可以用于此类调查?

也阅读 man gcc 关于 -fstack-protector 的内容。

顺便问一下 - 你为什么不想使用核心转储文件?

关于linux - 不依赖于特定于操作系统的核心转储的崩溃进程的回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52829240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com