Movatterモバイル変換


[0]ホーム

URL:


project logoChromium Docs

Linux — Building and Debugging GTK

Sometimes installing the debug packages for gtk and glib isn‘t quite enough. (For instance, if the artifacts from -O2 are driving you bonkers in gdb, you might want to rebuild with -O0.) Here’s how to build from source and use your local version without installing it.

Contents

32-bit systems

On Ubuntu, to download and build glib and gtk suitable for debugging:

  1. If you don't have a gpg key yet, generate one withgpg --gen-key.

  2. Create file~/.devscripts containingDEBSIGN_KEYID=yourkey, e.g.DEBSIGN_KEYID=CC91A262 (Seehttp://www.debian.org/doc/maint-guide/ch-build.en.html)

  3. If you're on a 32 bit system, do:

    #!/bin/shset-xset-e# Workaround for "E: Build-dependencies for glib2.0 could not be satisfied"# See also https://bugs.launchpad.net/ubuntu/+source/apt/+bug/245068sudo apt-get install libgamin-devsudo apt-get build-dep glib2.0 gtk+2.0rm-rf~/mylibsmkdir~/mylibscd~/mylibsapt-get source glib2.0 gtk+2.0cd glib2.0*DEB_BUILD_OPTIONS="nostrip noopt debug" debuildcd../gtk+2.0*DEB_BUILD_OPTIONS="nostrip noopt debug" debuild

This should take about an hour. If it gets stuck waiting for a zombie, you may have to kill its closest parent (the makefile uses subshells, and bash seems to get confused). When I did this, it continued successfully.

At the very end, it will prompt you for the passphrase for your gpg key.

Then, to run an app with those libraries, do e.g.

export LD_LIBRARY_PATH=$HOME/mylibs/gtk+2.0-2.16.1/debian/install/shared/usr/lib:$HOME/mylibs/gtk+2.0-2.20.1/debian/install/shared/usr/lib

gdb ignores that variable, so in the debugger, you would have to do something like

set solib-search-path $HOME/mylibs/gtk+2.0-2.16.1/debian/install/shared/usr/lib:$HOME/mylibs/gtk+2.0-2.20.1/debian/install/shared/usr/lib

See alsohttp://sources.redhat.com/gdb/current/onlinedocs/gdb_17.html

64-bit systems

If you're on a 64 bit system, you can do the above on a 32 bit system, and copy the result. Or try one of the following:

Building your own GTK

apt-get source glib-2.0 gtk+-2.0export CFLAGS='-m32 -g'export LDFLAGS=-L/usr/lib32export LD_LIBRARY_PATH=/work/32/libexport PKG_CONFIG_PATH=/work/32/lib/pkgconfig# glibsetarch i386./configure--prefix=/work/32--enable-debug=yes# gtksetarch i386./configure--prefix=/work/32--enable-debug=yes--without-libtiff

ia32-libs

Note: Evan tried this and didn't get any debug libs at the end.

Or you could try this instead:

#!/bin/shset -xset -esudo apt-get build-dep ia32-libsrm -rf ~/mylibsmkdir ~/mylibscd ~/mylibsapt-get source ia32-libscd ia32-libs*DEB_BUILD_OPTIONS="nostrip noopt debug" debuild

By default, this just grabs and unpacks prebuilt libraries; see ia32-libs-2.7ubuntu6/fetch-and-build which documents a BUILD variable which would force actual building. This would take way longer, since it builds dozens of libraries. I haven't tried it yet.

Possible Issues

debuild may fail with

gpg: [stdin]: clearsign failed: secret key not availabledebsign: gpg error occurred!  Aborting....

if you forget to create~/.devscripts with the right contents.

The build may fail with aFAIL: abicheck.sh if gold is your system linker. Use ld instead.


[8]ページ先頭

©2009-2025 Movatter.jp