db131bc47811c24df0fa1fd0bbc58c5eb43cfe14
[babeltrace.git] / tests / debuginfo-data / README.md
1 debuginfo-data
2 ==============
3
4 This directory contains pre-generated ELF and DWARF files used to test
5 the debug-info analysis feature, including lookup of DWARF debugging
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
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)
16 * `.build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug` (DWARF for build ID)
17
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
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
37 $ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello.so -o libhello_so tp.o libhello.o
38
39 ## ELF only
40
41 $ gcc -fPIC -c -I. tp.c libhello.c
42 $ gcc -shared -llttng-ust -ldl -Wl,-soname,libhello_elf.so -o libhello_elf_so tp.o libhello.o
43
44 ## ELF and DWARF with Build ID
45
46 $ gcc -g -fPIC -c -I. tp.c libhello.c
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
48 $ mkdir -p .build-id/cd/
49 $ objcopy --only-keep-debug libhello_build_id_so .build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug
50 $ strip -g libhello_build_id_so
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
60 $ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello_debug_link.so -o libhello_debug_link_so tp.o libhello.o
61
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
This page took 0.030476 seconds and 3 git commands to generate.