|
Packit Service |
b8cde7 |
debug-info-data
|
|
Packit Service |
b8cde7 |
==============
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
This directory contains pre-generated ELF and DWARF files used to test
|
|
Packit Service |
b8cde7 |
the debug info analysis feature, including lookup of DWARF debugging
|
|
Packit Service |
b8cde7 |
information via build ID and debug link methods, as well as the source
|
|
Packit Service |
b8cde7 |
files used to generate them.
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
The generated files are:
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
* `libhello_so` (ELF and DWARF)
|
|
Packit Service |
b8cde7 |
* `libhello_elf_so` (ELF only)
|
|
Packit Service |
b8cde7 |
* `libhello_build_id_so` (ELF with separate DWARF via build ID)
|
|
Packit Service |
b8cde7 |
* `libhello_debug_link_so` (ELF with separate DWARF via debug link)
|
|
Packit Service |
b8cde7 |
* `libhello_debug_link_so.debug` (DWARF for debug link)
|
|
Packit Service |
b8cde7 |
* `.build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug` (DWARF for build ID)
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
We use a suffix of "_so" instead of ".so" since some distributions
|
|
Packit Service |
b8cde7 |
build systems will consider ".so" files as artifacts from a previous
|
|
Packit Service |
b8cde7 |
build that were "left-over" and will remove them prior to the build.
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
All files are generated from the four (4) following source files:
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
* libhello.c
|
|
Packit Service |
b8cde7 |
* libhello.h
|
|
Packit Service |
b8cde7 |
* tp.c
|
|
Packit Service |
b8cde7 |
* tp.h
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
The generated executables were built using a GNU toolchain on an
|
|
Packit Service |
b8cde7 |
x86_64 machine.
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
To regenerate them, you can use follow these steps:
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
## ELF and DWARF
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
$ gcc -g -fPIC -c -I. tp.c libhello.c
|
|
Packit Service |
b8cde7 |
$ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello.so -o libhello_so tp.o libhello.o
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
## ELF only
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
$ gcc -fPIC -c -I. tp.c libhello.c
|
|
Packit Service |
b8cde7 |
$ gcc -shared -llttng-ust -ldl -Wl,-soname,libhello_elf.so -o libhello_elf_so tp.o libhello.o
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
## ELF and DWARF with Build ID
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
$ gcc -g -fPIC -c -I. tp.c libhello.c
|
|
Packit Service |
b8cde7 |
$ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello_build_id.so -Wl,--build-id=sha1 -o libhello_build_id_so tp.o libhello.o
|
|
Packit Service |
b8cde7 |
$ mkdir -p .build-id/cd/
|
|
Packit Service |
b8cde7 |
$ objcopy --only-keep-debug libhello_build_id_so .build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug
|
|
Packit Service |
b8cde7 |
$ strip -g libhello_build_id_so
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
The build ID might not be the same once the executable is regenerated
|
|
Packit Service |
b8cde7 |
on your system, so adjust the values in the directory and file names
|
|
Packit Service |
b8cde7 |
accordingly. Refer to the GDB documentation for more information:
|
|
Packit Service |
b8cde7 |
https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
## ELF and DWARF with Debug Link
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
$ gcc -g -fPIC -c -I. tp.c libhello.c
|
|
Packit Service |
b8cde7 |
$ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello_debug_link.so -o libhello_debug_link_so tp.o libhello.o
|
|
Packit Service |
b8cde7 |
|
|
Packit Service |
b8cde7 |
$ objcopy --only-keep-debug libhello_debug_link_so libhello_debug_link_so.debug
|
|
Packit Service |
b8cde7 |
$ strip -g libhello_debug_link_so
|
|
Packit Service |
b8cde7 |
$ objcopy --add-gnu-debuglink=libhello_debug_link_so.debug libhello_debug_link_so
|