Debugging 如何使用gdb调试wireshark插件

Debugging 如何使用gdb调试wireshark插件,debugging,gcc,gdb,wireshark,wireshark-dissector,Debugging,Gcc,Gdb,Wireshark,Wireshark Dissector,我有一个使用wireshark 1.10.3 API成功构建的wireshark插件。 然后,我使用apt get在Ubuntu13.04上安装了wireshark 1.10.3。 我已经为我的插件生成了一个.so文件,并将其复制到正确的目录中。 在尝试加载wireshark时,我得到一个未定义的Symbol错误。如果我更改API,我会得到一个构建错误。我确信我使用的是正确的API。如何调试此问题?GDB能以任何方式帮助我吗 谢谢当您在用于构建wireshark和插件的系统上的wireshark

我有一个使用wireshark 1.10.3 API成功构建的wireshark插件。 然后,我使用apt get在Ubuntu13.04上安装了wireshark 1.10.3。 我已经为我的插件生成了一个.so文件,并将其复制到正确的目录中。 在尝试加载wireshark时,我得到一个未定义的Symbol错误。如果我更改API,我会得到一个构建错误。我确信我使用的是正确的API。如何调试此问题?GDB能以任何方式帮助我吗


谢谢

当您在用于构建wireshark和插件的系统上的wireshark dev目录中启动wireshark时,插件加载/工作正常吗?如果是这样的话,那么当你试图在ubuntu系统上加载wireshark(以及你的插件)时,哪个符号是未定义的呢?我只是在构建环境中构建了插件。我已确保生成环境和安装的环境属于同一wireshark版本。符号是dissect\u nfs3\u post\u op\u attr。在回顾之后,我发现如果一个函数需要用于插件,那么它应该用WS_DLL_PUBLIC声明,因为运行时环境不会指定这个存储类。这个问题有解决方案吗?建议:如果你还没有这样做,请确保你可以构建完整的Wireshark(不仅仅是插件),并且插件可以在你的开发环境中工作。一旦插件可以在开发环境中工作,然后下一步是解决与将插件添加到已安装环境相关的任何问题。为什么需要从NFSv3解析器的内部调用例程?你的插件解析是什么协议?