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

*/
