Wireshark 2.4.5编译安装后加载DOIP/UDS插件启动崩溃求助
Hey there, let's work through this Wireshark crash you're hitting after compiling from source with the DOIP and UDS plugins. Those DBusMenu duplicate action errors and "duplicate field" warnings are classic signs of compatibility conflicts between custom plugins and the older Wireshark 2.4.5 codebase. Here's how to troubleshoot and fix each issue:
The DBusMenuExporterPrivate::addAction errors happen when Qt's DBus menu system tries to register the same action ID twice—usually from conflicting UI resources between your plugins and the main Wireshark binary, or a mismatched Qt environment.
- Clean and rebuild with targeted configuration
Stale build artifacts often cause weird UI linking issues. Start fresh by wiping the build cache, then try disabling DBus support temporarily (or ensuring your Qt version matches Wireshark 2.4.5's requirements):make clean rm -rf autom4te.cache/ ./autogen.sh # Option 1: Disable DBus to bypass the conflict ./configure --disable-dbus # Option 2: Use a compatible Qt version (Wireshark 2.4.5 works best with Qt 5.5-5.9) # ./configure QMAKE=/path/to/qt5.9/bin/qmake make sudo make install - Check for plugin UI conflicts
Your DOIP/UDS plugins might include UI actions that clash with Wireshark's built-in ones. Dig into the plugin source code—look for.uifiles orQActiondefinitions—and make sure their action IDs/names have a unique prefix (likedoip_oruds_) to avoid overlaps.
This one's straightforward: your plugins are defining protocol fields that already exist in Wireshark's core field registry.
- Audit plugin field definitions
Open the plugin's field registration code (look for files like*_dissect.cor*.proto) and check for field names/IDs that match Wireshark's built-in fields. For example, if a plugin uses a generic field name likeidorlength, rename it to something plugin-specific (e.g.,doip_message_idoruds_response_length). - Verify with a clean Wireshark instance
Temporarily disable your plugins (rename the plugin directory, likemv ~/.wireshark/plugins/ ~/.wireshark/plugins_old/) and launch Wireshark. Go toPreferences > Protocolsto browse all registered fields, then cross-reference with your plugin's definitions to spot duplicates.
Wireshark 2.4.5 is an older release, so compatibility with modern plugins or system dependencies is tricky:
- Confirm plugin version matching
Make sure the DOIP/UDS plugins you're using are explicitly built for Wireshark 2.4.5. Newer plugins often use APIs that don't exist in older releases, leading to unexpected crashes or conflicts. If the plugins are for a newer Wireshark version, you'll need to modify their source code to fit 2.4.5's API, or consider upgrading Wireshark (though 2.4.5 is end-of-life, so proceed with caution). - Validate system dependencies
Wireshark 2.4.5 has strict dependency version requirements (e.g., GLib 2.40+, PCRE 8.0+, Qt 5.5+). Run./configureand check the output for any dependency warnings, or look at theconfig.logfile to spot missing or incompatible libraries.
Give these steps a shot—most folks fix this kind of crash by cleaning their build and resolving UI/field conflicts between plugins and the core Wireshark code.
内容的提问来源于stack exchange,提问作者cpp_enthusiast

