Commit | Line | Data |
---|---|---|
6073533d AB |
1 | debuginfo-data |
2 | ============== | |
3 | ||
4 | This directory contains pre-generated ELF and DWARF files used to test | |
351c00cd | 5 | the debug-info analysis feature, including lookup of DWARF debugging |
6073533d AB |
6 | information via build ID and debug link methods, as well as the source |
7 | files used to generate them. | |
8 | ||
9 | The generated files are: | |
10 | ||
a1a328b0 MJ |
11 | * `libhello_so` (ELF and DWARF) |
12 | * `libhello_elf_so` (ELF only) | |
13 | * `libhello_build_id_so` (ELF with separate DWARF via build ID) | |
14 | * `libhello_debug_link_so` (ELF with separate DWARF via debug link) | |
15 | * `libhello_debug_link_so.debug` (DWARF for debug link) | |
6073533d AB |
16 | * `.build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug` (DWARF for build ID) |
17 | ||
a1a328b0 MJ |
18 | We use a suffix of "_so" instead of ".so" since some distributions |
19 | build systems will consider ".so" files as artifacts from a previous | |
20 | build that were "left-over" and will remove them prior to the build. | |
21 | ||
6073533d AB |
22 | All files are generated from the four (4) following source files: |
23 | ||
24 | * libhello.c | |
25 | * libhello.h | |
26 | * tp.c | |
27 | * tp.h | |
28 | ||
29 | The generated executables were built using a GNU toolchain on an | |
30 | x86_64 machine. | |
31 | ||
32 | To regenerate them, you can use follow these steps: | |
33 | ||
34 | ## ELF and DWARF | |
35 | ||
36 | $ gcc -g -fPIC -c -I. tp.c libhello.c | |
a1a328b0 | 37 | $ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello.so -o libhello_so tp.o libhello.o |
6073533d AB |
38 | |
39 | ## ELF only | |
40 | ||
41 | $ gcc -fPIC -c -I. tp.c libhello.c | |
a1a328b0 | 42 | $ gcc -shared -llttng-ust -ldl -Wl,-soname,libhello_elf.so -o libhello_elf_so tp.o libhello.o |
6073533d AB |
43 | |
44 | ## ELF and DWARF with Build ID | |
45 | ||
46 | $ gcc -g -fPIC -c -I. tp.c libhello.c | |
a1a328b0 | 47 | $ 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 |
6073533d | 48 | $ mkdir -p .build-id/cd/ |
a1a328b0 MJ |
49 | $ objcopy --only-keep-debug libhello_build_id_so .build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug |
50 | $ strip -g libhello_build_id_so | |
6073533d AB |
51 | |
52 | The build ID might not be the same once the executable is regenerated | |
53 | on your system, so adjust the values in the directory and file names | |
54 | accordingly. Refer to the GDB documentation for more information: | |
55 | https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html | |
56 | ||
57 | ## ELF and DWARF with Debug Link | |
58 | ||
59 | $ gcc -g -fPIC -c -I. tp.c libhello.c | |
a1a328b0 | 60 | $ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello_debug_link.so -o libhello_debug_link_so tp.o libhello.o |
6073533d | 61 | |
a1a328b0 MJ |
62 | $ objcopy --only-keep-debug libhello_debug_link_so libhello_debug_link_so.debug |
63 | $ strip -g libhello_debug_link_so | |
64 | $ objcopy --add-gnu-debuglink=libhello_debug_link_so.debug libhello_debug_link_so |