linux - 加载期间的wireshark核心转储

标签 linux plugins open-source wireshark wireshark-dissector

我有一个wireshark解析器插件。 我还从 apt-get 安装了wireshark。

wireshark 加载正常,无需将插件插入正确的位置。 当我包含插件 .so 文件并尝试运行wireshark时,出现以下错误:

$ 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/

相关文章:

linux - 如何在Linux上编译nstat?

python - Jupyter 笔记本 : "RuntimeError: Permissions assignment failed for secure file: ... Got ' 0o160 0' instead of ' 0o060 0' "

java - 如何更新/刷新 eclipse 插件中的 View ?

c# - 开源 CMS(.Net 与 Java)

linux - C++11:Linux 上的 std::thread 是否依赖于 pthread 库?

c - 如何使用 c 中的套接字 api 一次性发送 .bmp 文件?

.net - 开源项目如何在不花费大量资金的情况下获得商业软件的许可?

flash - 任何人都知道开源 Flash 游戏

javascript - 如何将我的 javascript 放在页脚中

php - 文件获取内容(): php_network_getaddresses: getaddrinfo failed: Name or service not known