dwarves: Prep v1.16
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
69df73444c
commit
1c1af2cd19
|
@ -30,7 +30,7 @@ endif (NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -ggdb -O2")
|
set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -ggdb -O2")
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-Wall -O2")
|
set(CMAKE_C_FLAGS_RELEASE "-Wall -O2")
|
||||||
|
|
||||||
add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.15")
|
add_definitions(-D_GNU_SOURCE -DDWARVES_VERSION="v1.16")
|
||||||
find_package(DWARF REQUIRED)
|
find_package(DWARF REQUIRED)
|
||||||
find_package(ZLIB REQUIRED)
|
find_package(ZLIB REQUIRED)
|
||||||
|
|
||||||
|
|
53
NEWS
53
NEWS
|
@ -1,3 +1,56 @@
|
||||||
|
v1.16:
|
||||||
|
|
||||||
|
Mon Dec 16 2019
|
||||||
|
|
||||||
|
69df73444c69 (HEAD -> master, acme.korg/master) dwarves: Add -O2 to CFLAGS
|
||||||
|
6d11dd157f75 elfcreator: Address initialization warning emitted by 'gcc -O6'
|
||||||
|
1bc63a4cffa7 fprintf: Fixup truncation possibility pointed out by gcc -O2
|
||||||
|
5c590fc29d06 ptr_table: Zero out new id ranges
|
||||||
|
644466dce77f fprintf: Remove extraneous sizeof operator
|
||||||
|
a59459bb80e7 fprintf: Account inline type __aligned__ member types for spacing
|
||||||
|
56547f133a5b fprintf: Fix alignment of class members that are structs/enums/unions
|
||||||
|
be37b64aef38 dwarves: Ignore static members for alignment
|
||||||
|
cca018e495a8 SPEC: Add dwarves dependency on libdwarves1
|
||||||
|
ccf3eebfcd9c btf_loader: Add support for BTF_KIND_FUNC
|
||||||
|
f95fd85f7b53 pfunct: type->type == 0 is void, fix --compile for that
|
||||||
|
3e8f09e304ba (origin/master, origin/HEAD) pdwtags: Print DW_TAG_subroutine_type as well
|
||||||
|
3c5f2a224aa1 btf_encoder: Preserve and encode exported functions as BTF_KIND_FUNC
|
||||||
|
910e060b5c4b btf_loader: Skip BTF_KIND_DATASEC entries
|
||||||
|
96235a74a34d btf_loader: Replace if/else series with a proper switch {}
|
||||||
|
a4ba2234ff58 btf_loader: Support BTF_KIND_VAR
|
||||||
|
5965ce015eab dwarves: Fix ptr_table__add_with_id() handling of pt->nr_entries
|
||||||
|
173911ac38ea btf_loader: Show the unknown kind numbers
|
||||||
|
0d8e11e8568e pglobal: Allow passing the format path specifier, to use with BTF
|
||||||
|
ba27df9f2f94 CMakeLists: Use lib/bpf/include/uapi when building libdwarves
|
||||||
|
95517e1d995e libbpf: Get latest libbpf
|
||||||
|
ca294eebfc47 MANIFEST: Add missing files
|
||||||
|
d5e01d10e515 fprintf: Set tconf.type_spacing earlier
|
||||||
|
c6a9a0eb6ac7 fprintf: Fix up decrementing recursivity level in type__fprintf()
|
||||||
|
93c3cdf89715 cmake: Add -Wall to CFLAGS
|
||||||
|
7360f0528ff3 elfcreator: Remove unused 'machine' variable
|
||||||
|
0f52b11f911c prefcnt: Avoid ambiguous else with for_each macro
|
||||||
|
608813d0affa pglobal: Avoid ambiguous else
|
||||||
|
77d06c2d305d reorganize: Enclose bitfield routines under ifdef
|
||||||
|
2221ae30bce9 reorganize: Ditch unused variable
|
||||||
|
c419c513eae5 libbtf: Enlarge the 'cmd' buffer to not possibly truncate the pathname
|
||||||
|
092fffe56701 btf_loader: Enum values are s32, cast before calling btf_elf__get32()
|
||||||
|
7bfb1aa80f9a libctf: Enlarge the 'cmd' buffer to not possibly truncate the pathname
|
||||||
|
f67c281f9841 fprintf: Correct the type for the 'cacheline' variable, it should be uint32_t
|
||||||
|
7b36fab5a8df fprintf: Add guard against unlikely overlapping copy
|
||||||
|
e737976c09d9 fprintf: Do not scrub type when looking up its type
|
||||||
|
e95dacb704bf fprintf: Remove unused printf arg when printing enumerations
|
||||||
|
71c4f83f2828 emit: Remove unused 'is_pointer' variable
|
||||||
|
fe87354c31bb dwarves: Ditch unused asprintf() function
|
||||||
|
60c73a769882 dwarves: We need to consistently check if 'conf was specified
|
||||||
|
5fdfd09a6bbe dwarves: Fix check in type__find_first_biggest_size_base_type_member()
|
||||||
|
24ced5be8a75 dwarf_loader: Fix array overrun access
|
||||||
|
33e2d7aa35a7 ctf_loader: Plug leak when bailing out due to unknown tag
|
||||||
|
aefa9303818b codiff: Remove unused filenames variable
|
||||||
|
de5e72bc15fb btf_loader: Plug leak when bailing out due to unknown tag
|
||||||
|
511a79129494 dwarves: Remove unused variable
|
||||||
|
b1412a88bb61 fprintf: Fixup handling classes with no members
|
||||||
|
[acme@quaco pahole]$
|
||||||
|
|
||||||
v1.15
|
v1.15
|
||||||
|
|
||||||
Thu Jun 27 2019
|
Thu Jun 27 2019
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
v1.16 changes:
|
||||||
|
|
||||||
|
BTF encoder:
|
||||||
|
|
||||||
|
Andrii Nakryiko <andriin@fb.com>:
|
||||||
|
|
||||||
|
- Preserve and encode exported functions as BTF_KIND_FUNC.
|
||||||
|
|
||||||
|
Add encoding of DWARF's DW_TAG_subprogram_type into BTF's BTF_KIND_FUNC
|
||||||
|
(plus corresponding BTF_KIND_FUNC_PROTO). Only exported functions are converted
|
||||||
|
for now. This allows to capture all the exported kernel functions, same subset
|
||||||
|
that's exposed through /proc/kallsyms.
|
||||||
|
|
||||||
|
BTF loader:
|
||||||
|
|
||||||
|
Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||||
|
|
||||||
|
- Add support for BTF_KIND_FUNC
|
||||||
|
|
||||||
|
Some changes to the fprintf routines were needed, as BTF has as the
|
||||||
|
function type just a BTF_KIND_FUNC_PROTO, while DWARF has as the type for a
|
||||||
|
function its return value type. With a function->btf flag this was overcome and
|
||||||
|
all the other goodies in pfunct are present.
|
||||||
|
|
||||||
|
Pretty printer:
|
||||||
|
|
||||||
|
Arnaldo Carvalho de Melo:
|
||||||
|
|
||||||
|
- Account inline type __aligned__ member types for spacing:
|
||||||
|
|
||||||
|
union {
|
||||||
|
refcount_t rcu_users; /* 2568 4 */
|
||||||
|
struct callback_head rcu __attribute__((__aligned__(8))); /* 2568 16 */
|
||||||
|
- } __attribute__((__aligned__(8))); /* 2568 16 */
|
||||||
|
+ } __attribute__((__aligned__(8))); /* 2568 16 */
|
||||||
|
struct pipe_inode_info * splice_pipe; /* 2584 8 */
|
||||||
|
|
||||||
|
- Fix alignment of class members that are structs/enums/unions
|
||||||
|
|
||||||
|
E.g. look at that 'completion' member in this struct:
|
||||||
|
|
||||||
|
struct cpu_stop_done {
|
||||||
|
atomic_t nr_todo; /* 0 4 */
|
||||||
|
int ret; /* 4 4 */
|
||||||
|
- struct completion completion; /* 8 32 */
|
||||||
|
+ struct completion completion; /* 8 32 */
|
||||||
|
|
||||||
|
/* size: 40, cachelines: 1, members: 3 */
|
||||||
|
/* last cacheline: 40 bytes */
|
||||||
|
|
||||||
|
- Fixup handling classes with no members, solving a NULL deref.
|
||||||
|
|
||||||
|
Gareth Lloyd <gareth.lloyd@uk.ibm.com>:
|
||||||
|
|
||||||
|
- Avoid infinite loop trying to determine type with static data member of its own type.
|
||||||
|
|
||||||
|
RPM spec file.
|
||||||
|
|
||||||
|
Jiri Olsa <jolsa@redhat.com>
|
||||||
|
|
||||||
|
Add dwarves dependency on libdwarves1.
|
||||||
|
|
||||||
|
pfunct:
|
||||||
|
|
||||||
|
Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||||
|
|
||||||
|
- type->type == 0 is void, fix --compile for that
|
||||||
|
|
||||||
|
We were using the fall back for that, i.e. 'return 0;' was being emitted
|
||||||
|
for a function returning void, noticed with using BTF as the format.
|
||||||
|
|
||||||
|
pdwtags:
|
||||||
|
|
||||||
|
- Print DW_TAG_subroutine_type as well
|
||||||
|
|
||||||
|
So that we can see at least via pdwtags those tags, be it from DWARF of BTF.
|
||||||
|
|
||||||
|
core:
|
||||||
|
|
||||||
|
Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||||
|
|
||||||
|
Fix ptr_table__add_with_id() handling of pt->nr_entries, covering how
|
||||||
|
BTF variables IDs are encoded.
|
||||||
|
|
||||||
|
|
||||||
|
pglobal:
|
||||||
|
|
||||||
|
Arnaldo Carvalho de Melo <acme@redhat.com>:
|
||||||
|
|
||||||
|
- Allow passing the format path specifier, to use with BTF
|
||||||
|
|
||||||
|
I.e. now we can, just like with pahole, use:
|
||||||
|
|
||||||
|
pglobal -F btf --variable foo.o
|
||||||
|
|
||||||
|
To get the global variables.
|
||||||
|
|
||||||
|
Tree wide:
|
||||||
|
|
||||||
|
Arnaldo Carvalho de Melo <acme@redhat.com>:
|
||||||
|
|
||||||
|
- Fixup issues pointed out by various coverity reports.
|
||||||
|
|
||||||
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
@ -2,8 +2,8 @@
|
||||||
%define libver 1
|
%define libver 1
|
||||||
|
|
||||||
Name: dwarves
|
Name: dwarves
|
||||||
Version: 1.15
|
Version: 1.16
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Summary: Debugging Information Manipulation Tools (pahole & friends)
|
Summary: Debugging Information Manipulation Tools (pahole & friends)
|
||||||
URL: http://acmel.wordpress.com
|
URL: http://acmel.wordpress.com
|
||||||
|
@ -35,6 +35,15 @@ code generate on the resulting binaries.
|
||||||
Another tool is pfunct, that can be used to find all sorts of information about
|
Another tool is pfunct, that can be used to find all sorts of information about
|
||||||
functions, inlines, decisions made by the compiler about inlining, etc.
|
functions, inlines, decisions made by the compiler about inlining, etc.
|
||||||
|
|
||||||
|
One example of pfunct usage is in the fullcircle tool, a shell that drivers
|
||||||
|
pfunct to generate compileable code out of a .o file and then build it using
|
||||||
|
gcc, with the same compiler flags, and then use codiff to make sure the
|
||||||
|
original .o file and the new one generated from debug info produces the same
|
||||||
|
debug info.
|
||||||
|
|
||||||
|
The btfdiff utility compares the output of pahole from BTF and DWARF to make
|
||||||
|
sure they produce the same results.
|
||||||
|
|
||||||
%package -n %{libname}%{libver}
|
%package -n %{libname}%{libver}
|
||||||
Summary: Debugging information processing library
|
Summary: Debugging information processing library
|
||||||
|
|
||||||
|
@ -118,6 +127,20 @@ make install DESTDIR=%{buildroot}
|
||||||
%{_libdir}/%{libname}_reorganize.so
|
%{_libdir}/%{libname}_reorganize.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon 16 Dec 2019 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.16-1
|
||||||
|
- New release: 1.16
|
||||||
|
- BTF encoder: Preserve and encode exported functions as BTF_KIND_FUNC.
|
||||||
|
- BTF loader: Add support for BTF_KIND_FUNC
|
||||||
|
- Pretty printer: Account inline type __aligned__ member types for spacing
|
||||||
|
- Pretty printer: Fix alignment of class members that are structs/enums/unions
|
||||||
|
- Pretty printer: Avoid infinite loop trying to determine type with static data member of its own type.
|
||||||
|
- RPM spec file: Add dwarves dependency on libdwarves1.
|
||||||
|
- pfunct: type->type == 0 is void, fix --compile for that
|
||||||
|
- pdwtags: Print DW_TAG_subroutine_type as well
|
||||||
|
- core: Fix ptr_table__add_with_id() handling of pt->nr_entries
|
||||||
|
- pglobal: Allow passing the format path specifier, to use with BTF
|
||||||
|
- Tree wide: Fixup issues pointed out by various coverity reports.
|
||||||
|
|
||||||
* Tue Nov 05 2019 Jiri Olsa <jolsa@redhat.com> - 1.15-2
|
* Tue Nov 05 2019 Jiri Olsa <jolsa@redhat.com> - 1.15-2
|
||||||
- Add libdwarves version dependency to dwarves package
|
- Add libdwarves version dependency to dwarves package
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue