====== Advanced Building and Debugging Information for Xfce components ====== While the basic build steps are explained here, this page provides some information about build specifics you probably will need on special occasions. ===== Debugging with gdb ===== For debian based systems, if you need to debug into dependencies, enable automatic download of debug symbols before calling GDB: export DEBUGINFOD_URLS="https://debuginfod.debian.net" First make sure the application you want to debug is not running. After that, you can start it like this: gdb --args build/myapp/myapp-binary E.g. for thunar: gdb --args build/thunar/thunar Usually it is a good idea to automate the quitting and to bail out on the first warning: build/thunar/thunar -q; gdb --args build/thunar/thunar --g-fatal-warnings On a freeze, get a backtrace of all threads via thread apply all bt ===== Build with scan-build ===== ''scan-build'' does some static code analysis for a project. It can be used like this: # using --reconfigure won't work ... you need to remove the build folder! rm -rf build # setup and build the project ... the concrete version of scan-build to use can differ CC=clang scan-build-19 --use-cc=clang meson setup build CC=clang scan-build-19 --use-cc=clang meson compile -C build The reports are in HTML and can be viewed with a browser ===== Build with documentation ===== meson setup --reconfigure -Dgtk-doc=true build meson compile -C build Documentation can be found below ''build/docs'' ===== Use introspection / GtkInspector ===== ''GtkInspector'' is a very nice tool to debug visual things during runtime. First you need to build the project with introspection support: Pre requirements: * install package libgirepository1.0-dev * gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true Building: meson setup --reconfigure -Dintrospection=true build meson compile -C build Then you can start ''GtkInspector'' for the application by pressing [CTRL][SHIFT][D] or [CTRL][SHIFT][I] during runtime [[https://developer.gnome.org/documentation/tools/inspector.html|Here some general gtk inspector information]]