[pacman-dev] [PATCH 0/7] Split debugging symbols into separate package

Allan McRae allan at archlinux.org
Sun Sep 23 11:40:37 EDT 2012


On 24/09/12 00:44, Allan McRae wrote:
> This patchset allows makepkg to automatically create packages from the stripped
> debugging symbols.
> 
> Patches 1, 4 and 6 are only mildly related... but a fixes that were "needed"
> along the way.
> 
> The idea is to add options=('debug') to your PKGBUILD or in makepkg.conf and
> then makepkg will add DEBUG_CFLAGS and DEBUG_CXXFLAGS (defined in makepkg.conf)
> to their buildflag counterparts.
> 
> When both "debug" and "strip" are specified in the options, the debug symbols
> are copied into a separate folder before the files are stripped.  The main
> debugging symbols are in /usr/lib/debug/path/to/file 
> (e.g. /usr/lib/debug/usr/bin/pacman) and are hardlinked if required. If the
> binary was linked with a build ID, the relevant symlinks in
> /usr/lib/debug/.build_id are created.
> 
> Testing is needed...
> 

valgrind without debug package installed:
==27108== Invalid free() / delete / delete[] / realloc()
==27108==    at 0x4029F8C: operator delete(void*) (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27108==    by 0x8048760: ??? (in /usr/bin/foo)
==27108==    by 0x41AD604: (below main) (in /usr/lib/libc-2.16.so)
==27108==  Address 0x4342028 is 0 bytes inside a block of size 4 free'd
==27108==    at 0x4029F8C: operator delete(void*) (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27108==    by 0x8048754: ??? (in /usr/bin/foo)
==27108==    by 0x41AD604: (below main) (in /usr/lib/libc-2.16.so)


valgrind with debug package:
==27142== Invalid free() / delete / delete[] / realloc()
==27142==    at 0x4029F8C: operator delete(void*) (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27142==    by 0x8048760: main (test.cpp:8)
==27142==  Address 0x4342028 is 0 bytes inside a block of size 4 free'd
==27142==    at 0x4029F8C: operator delete(void*) (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27142==    by 0x8048754: main (test.cpp:7)


Similar things happen with gdb!

Allan



More information about the pacman-dev mailing list