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