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 コードで「再宣言されていない」/「正しく使用されている」ことを確認してください。