2.7 KiB
Icinga 2 Development
You can follow Icinga 2's development closely by checking out these resources:
- Development Bug Tracker: [https://dev.icinga.org/projects/i2?jump=issues] (How to report a bug)
- Git Repositories: [https://git.icinga.org/?p=icinga2.git;a=summary] (mirror at [https://github.com/Icinga/icinga2])
- Git Checkins Mailinglist: [https://lists.icinga.org/mailman/listinfo/icinga-checkins]
- Development Mailinglist: [https://lists.icinga.org/mailman/listinfo/icinga-devel]
- #icinga-devel on irc.freenode.net [http://webchat.freenode.net/?channels=icinga-devel] including a Git Commit Bot
For general support questions, please refer to [https://www.icinga.org/support/].
Debug Icinga 2
Make sure that the debug symbols are available for Icinga 2.
The Icinga 2 packages provide a debug package which must be
installed seperately for all involved binaries, like icinga2-bin
or icinga2-ido-mysql
.
# yum install icinga2-bin-debuginfo icinga2-ido-mysql-debuginfo
Compiled binaries require the -DCMAKE_BUILD_TYPE=RelWithDebInfo
or
-DCMAKE_BUILD_TYPE=Debug
cmake build flags.
GDB
Call GDB with the binary and all arguments and run it in foreground.
# gdb --args /usr/sbin/icinga2 -c /etc/icinga2/icinga2.conf -x
GDB Run
Run the application.
(gdb) r
Kill the running application.
(gdb) k
Continue after breakpoint.
(gdb) c
GDB Backtrace
If Icinga 2 aborted its operation abnormally, generate a backtrace.
(gdb) bt
(gdb) bt full
Tip
If you're opening an issue at [https://dev.icinga.org] make sure to attach as much details as possible.
GDB Backtrace Stepping
Identifying the problem may require stepping into the backtrace analysing
the current scope, attributes and possible unmet requirements. p
prints
the value of the selected variable or function call result, if applicable.
(gdb) up
(gdb) down
(gdb) p checkable
(gdb) p checkable-GetName()
GDB Breakpoints
Set a breakpoint to a specific function call, or file specific line.
(gdb) b checkable.cpp:125
(gdb) b icinga::Checkable::SetEnablePerfdata
GDB will ask about loading the required symbols later, select yes
instead
of no
.
Then run Icinga 2 until it reaches the first breakpoint. Continue with c
afterwards.
(gdb) run
(gdb) c
If you want to delete all breakpoints, use d
and select yes
.
(gdb) d