The sources contain several documentation files. It’s a good idea to read these files first. After obtaining the sources, tools and libraries, the first place to look at is doc/README.developer. Inside you will find the latest information for Wireshark development for all supported platforms.
Build Wireshark before changing anything | |
---|---|
It is a very good idea to first test your complete build environment (including running and debugging Wireshark) before making any changes to the source code (unless otherwise noted). |
Building Wireshark for the first time depends on your platform.
Follow the build procedure in Section 2.1, “UN*X” to build Wireshark.
Follow the build procedure in Section 2.2, “Windows” to build Wireshark.
After the build process has successfully finished, you should find a
Wireshark.exe
and some other files in the run\RelWithDebInfo
directory.
CMake can compile Wireshark for several different build types:
Table 3.1. Build Types
Type | Compiler Flags | Description |
---|---|---|
|
| Build with optimizations and generate debug symbols. Disables assertions and disables debug level logs |
|
| For development, no optimization. Enables assertions and debug level logs |
|
| Optimized for speed, no debug symbols or debug level logs or assertions |
|
| Optimized for size, no debug symbols or debug level logs or assertions |
The default is RelWithDebInfo
, which provides a good compromise of
some optimization (-O2
) along with including debug symbols (-g
)
for release builds. For normal development coding you probably want to be
using Debug
build type or set -DENABLE_DEBUG=On, to enable full
logging capabilities and debug code.
CMake will automatically add the -DNDEBUG option to certain build types. This macro is used to disable assertions but it can be overruled using ENABLE_ASSERT, which can be used to unconditionally enable assertions if defined.
To change the build type, set the CMake variable CMAKE_BUILD_TYPE
, e.g.:
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
or on Windows,
> msbuild /m /p:Configuration=Debug Wireshark.sln