我有一个Wireshark Dissector插件。
我还从apt-get安装了wireshark。

在没有将插件插入正确位置的情况下,wireshark可以很好地加载。
当我包含插件.so文件并尝试运行wirehark时,出现以下错误:

$ wireshark
08:23:45          Err  register_subtree_array: subtree item type (ett_...) not -1 ! This is a development error: Either the subtree item type has already been assigned or was not initialized to -1.
Trace/breakpoint trap (core dumped)


我试图理解问题。它说子树已经被分配了(我假设分配了一个ett值)或没有用-1初始化。我的插件中有3个文件,其中调用了API,我检查了每个位置提供给API的ett []的值。它们都被初始化为-1。

卡在路障中。任何建议都会有所帮助。

另外,我不知道Wireshark在哪里转储核心。我找不到任何核心。
有什么想法吗?

最佳答案

通常,如果要在程序中插入插件,则必须确保编译该插件所依据的库API与该程序提供的库API相同。

除非wireshark在其库API中提供文档化版本控制,否则这意味着您必须针对要使用的相同版本的wireshark编译插件。因此,如果您自己编译wireshark或插件,则也应该编译另一个。如果您以二进制形式获取插件,则也应该从完全相同的位置获取Wireshark,否则,您可能不知道两者是否兼容。如果在插入插件时仅得到核心转储,则有力地表明两者可能不兼容。

关于linux - 加载期间wireshark核心转储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20356694/

10-10 21:39