GDB调试远程核心转储

gdb debug remote core dump

本文关键字:核心 转储 调试 程核心 GDB      更新时间:2023-10-16

我有一个用C++编写的服务器在生产环境中崩溃,我无法直接访问它。崩溃产生了一个巨大的核心转储~34G,我无法在本地复制。我需要分析核心转储,但不知道如何在不复制它的情况下完成。我尝试在目标上运行gdbserver,但它不将核心文件作为参数,似乎只适合从主机上调试运行的远程应用程序。有办法做到这一点吗?

我需要分析核心转储,但不知道如何在不复制的情况下完成。

你不能。您需要将核心转储转储到可以运行GDB的位置。

我不能ssh到远程机器,但可以要求系统管理员为我运行gdbserver之类的东西,但他不能分析和调试核心文件。

你不需要sysadmin来分析任何东西。您只需要让他运行一系列GDB命令,并向您发送输出。例如

where
thread apply all where
info registers
disas

…可以让您以长的方式来理解问题,并且将花费您不到5分钟的时间。

我仍然需要解压缩它才能在gdb上运行,我不想在本地机器上这样做。

还有,和你的经理谈谈。您的开发设置不合理。您必须能够在本地分析生产崩溃,这意味着您必须能够访问一台足够强大的机器。