Linux:在CentOS v7上加载调试符号

Linux:在CentOS v7上加载调试符号,linux,centos,segmentation-fault,gdb,Linux,Centos,Segmentation Fault,Gdb,在执行诸如cd、ls、sudo-reboot和make等基本命令时,许多系统会出现分段故障。这种情况并非总是发生,而且似乎是间歇性的,物理重启将有助于一段时间。我们能够导致执行sudo true时出现分段错误。连接gdb并获取回溯结果: Program received signal SIGSEGV, Segmentation fault. 0x00007f71c45a98a1 in sudo_sss_setdefs () from /usr/libexec/sudo/sudoers.so (g

在执行诸如
cd
ls
sudo-reboot
make
等基本命令时,许多系统会出现分段故障。这种情况并非总是发生,而且似乎是间歇性的,物理重启将有助于一段时间。我们能够导致执行
sudo true
时出现分段错误。连接gdb并获取回溯结果:

Program received signal SIGSEGV, Segmentation fault.
0x00007f71c45a98a1 in sudo_sss_setdefs () from /usr/libexec/sudo/sudoers.so
(gdb) bt
#0  0x00007f71c45a98a1 in sudo_sss_setdefs () from /usr/libexec/sudo/sudoers.so
#1  0x00007f71c45a1ca4 in sudoers_policy_init () from /usr/libexec/sudo/sudoers.so
#2  0x00007f71c459bb37 in sudoers_policy_open () from /usr/libexec/sudo/sudoers.so
#3  0x000055f13bdbd55b in main () 
我的问题是如何将调试符号加载到gdb中?如果我记得的话,在Windows上,微软会发布调试符号供开发人员使用。我不确定是否为Linux发行版发布了调试符号,并且可能与发行版相关

第二个问题是,除了使用gdb之外,调试分段故障的最佳方法是什么?谢谢

如何将调试符号加载到gdb中

您安装了一个
sudo dbg
或类似的包(即,如果程序X来自包
foo
,那么X的调试符号将位于
foo dbg
(或类似命名的)包中)

在Windows上,MS将发布调试符号供开发人员使用

大多数Linux发行版都包含
*-dbg

除了使用gdb,调试分段错误的最佳方法是什么

您描述的症状(不同的命令崩溃,重新启动后崩溃会持续一段时间)表明这是系统RAM的问题


如果RAM出现故障,调试单个程序不太可能产生任何有用的结果。相反,使用
memtest86
来彻底锻炼你的记忆力。

感谢您提供
memtest
的信息和建议。花了一段时间,但发现一篇RedHat文章讨论了调试符号,他们称之为
debuginfo