[arch-general] Generating gdb debug logs for devs

Christoph Gysin christoph.gysin at gmail.com
Thu Feb 2 10:50:14 UTC 2017


> I've installed ABS, modified PKGBUILD and made my own /etc/makepkg-dev.conf

No need to change both makepkg.conf and the PKGBUILD. Either will do.

> makepkg -sf --config /etc/makepkg-dev.conf generates the executable.

This will only build the package. Make sure to install it, or use
'makepkg -sfi' to install it automatically.

> Still gdb gives very little info after running
> cd lxrandr/pkg/lxrandr/usr/bin
> gdb -ex "set logging file debug.log" -ex "set logging overwrite on" -ex
> "thread apply all bt full" -ex "set logging on" -ex "run" -ex "backtrace"
> -ex "frame 0" -ex "kill" -ex "quit" ./lxrandr
>
> I'm guessing because I need to add debugging to libraries which lxrandr is
> using too.

You should see symbols for the stackframes in lxrandr, but stackframes
inside libraries might not resolve until you also build debug versions
for them.

> In the wiki there's
> --- snip ---
> Note: It is insufficient to simply install the newly compiled debug
> package, because the debugger will check that the file containing the debug
> symbols is from the same build as the associated library and executable.
> You must install both of the recompiled packages. In Arch, the debug
> symbols files are installed under /usr/lib/debug. See the GDB documentation
> for more information about debug packages.
> --- snip ---

This is referring to using split debug packages. When using
option=(debug) without !split, makepkg will create a separate package
with debug symbols. If using this approach, you must install both,
simply installing the symbols won't work because they have to match
the binary they were built for.

> But as a non c/c++ dev this doesn't say anything. What do I need to
> install/run and where?

You most likely need to install debug symbols for the libraries used
when lxrandr crashes.

Chris


More information about the arch-general mailing list