Troubleshooting
This page describes a few steps that you can follow in order to better understand a problem you are encountering with freeDiameter
.
Gathering debug messages
If your problem occurs following a reproductible sequence of events, you may get useful information by:
- Compiling the framework with DEBUG support. This is done by building freeDiameter with CMAKE_BUILD_TYPE=Debug option (see Installation for more information).
- Running the daemon with a higher level of details in the debug output.
Default is level 1 : INFO.
The level is increased by passing one or more
-d
flags on the command line. In many cases,-dd
or-ddd
should give enough feedback to get a precise idea of what is going on. The levels are defined in [source:freeDiameter/include/freeDiameter/libfdproto.h libfdproto.h] as follow:- NONE (0) : No message is displayed.
- INFO (1) : Only important messages and errors are shown. This is the default, but might be overwritten at compilation.
- FULL (2) : Additional information, allowing to follow the execution.
- ANNOYING (4) : Very verbose level, including for example loops contents.
- FCTS (6) : Traces entry inside most framework functions, with their parameters.
- CALL (9) : Traces almost all function calls.
The levels above 3 will result in a lot of information being displayed, and a slowing of the framework's execution. These must be used with care. To get level 3 for example (assuming default is 1), use:
$ freeDiameterd -dd
- In addition, if you were able to isolate the function or at least source file where the problem is occurring, you can use
--dbg_func=<funcname>
or--dbg_file=<filename>
to get maximum detailed information in this function/file only. See Usage page for more information on these flags.
It is also of course possible to use a debugger such as gdb
with freeDiameter, although its multithreaded design makes it a bit more difficult.
Reporting a problem
Please use the "Search" function of this site first to look for similar reports. This searches both the existing tickets and the mailing-list archives.
If your problem is not already solved, please report to the support mailing-list: help@freediameter.net. If possible, include as much useful information as possible, including:
- your configuration file -- if relevant, strip / alter any confidential information
- the debug messages showing the problem
- the Operating System on which you are running the framework
- the steps to reproduce the problem.
In some cases, a network capture (realized with wireshark for example) may also be helpful.