// Copyright (C) 2023-2025 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. /** @page debug Debugging Kea @section debugSymbols Enabling debug symbols There are flags that make the compiler produce more abundant debugging information that can be read by a debugger. When `--buildtype=debug` is added to `meson setup`, it passes one of these flags to the compiler: `-g`. Some compilers don't document some of the flags, such as clang for -g3. However, practice shows that clang behaves the same way as g++ in that regard. As an experiment, providing -g4 results in `error: unknown argument: '-g4'`, but providing -g3 successfully compiles, and supposedly puts it into effect. Disabling optimizations via `-O0` is also recommended for debugging. g++ also provides `-ggdb`. The `-D tests=enabled` flag besides enabling unit tests, also enables useful debugging functionality: log4cplus's own logging, and adds more sanity checks in DNS code. */