0

我使用 net-snmp 库 ( http://www.net-snmp.org/tutorial/tutorial-5/toolkit/demon/ ) 在我的应用程序中实现了 SNMP 子代理功能。

应用程序在 init_agent() 调用时崩溃。相同的 GDB-BackTrace:

#0  0x00002b123483aaa1 in init_traps () from /usr/lib64/libnetsnmpagent.so.10
#1  0x00002b1234835cd0 in init_agent () from /usr/lib64/libnetsnmpagent.so.10
...

“/var/log/messages”处的错误消息:

sample_app.exe[6642]: segfault at 0000000000659de0 rip 00002ac2749c2aa1 rsp 00007fff38c6ec48 error 7

我在 CentOS 5.5(elf5) 64Bit 上使用“NET-SNMP 版本:5.3.2.2”。sample_app 代码与教程中提供的相同(http://www.net-snmp.org/tutorial/tutorial-5/toolkit/demon/example-demon.c

init_agent() 应该将配置文件名作为参数,我尝试传递具有“正确配置”/“不正确配置”/“文件不存在”的配置文件名,在每种情况下,应用程序都会因相同的错误而崩溃。

请建议任何工具/链接,以帮助我确定崩溃的实际原因。解决类似问题的任何链接也将有所帮助。

谢谢


编辑 - 问题已解决。变量“snmptrap_oid_len”在应用程序的 MIB C 代码中被声明/使用,该代码已经是 net-snmp 库“agent_trap.c”的一部分。这导致了冲突并因此崩溃。

PS:如果您遇到类似问题,请确保变量“snmptrap_oid”和“snmptrap_oid_len”在 MIB C 代码中“未重新声明”/“正确使用”。

4

0 回答 0