我试图了解 Centos 64 位上 agentX 中的随机段错误。随机我的意思是子代理除了检查是否有任何事情要做之外几乎没有做任何事情 - 它所属的服务器处于空闲状态并且已经有一段时间了。我有一个堆栈跟踪说崩溃发生在 agentx_open_session+0x120。正在使用的 Net-SNMP 版本是使用 yum 获得的,因此它没有调试符号,但我知道它是 5.5.41.el6_3.1.x86_64。我想知道在哪里可以找到此版本的调试符号以及如何使用它们来定位 Net-SNMP 代码中的崩溃站点。我没有核心文件——只有堆栈跟踪。
问问题
920 次
1 回答
0
您需要为此启用 CentOS Debuginfo 存储库。
直接安装 RPM,或者,首选方式,通过设置enabled=1
./etc/yum.repos.d/CentOS-Debuginfo.repo
之后,您就可以运行一个简单的yum install net-snmp-debuginfo
.
然后,要生成核心文件,您需要为运行 net-smnpd 的用户启用核心文件。不幸的是,对于 CentOS,这是用户root
。因此,要仅为此会话启用核心文件,最好将一个添加ulimit -c unlimited
到 net-snmpd 的 startup-file /etc/init.d/snmpd
。只是为了测试。您确实需要稍后再次删除它。
或者,可能更好的是,关闭 net-snmpd,启动 root-shell,运行ulimit
,然后手动启动 snmpd。如果您可以可靠地重现问题,此方法将为您省去清理过程。
不幸的是,我不能告诉它要转储核心的位置,但我相信你会找到它。
于 2012-10-31T19:09:19.837 回答