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_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(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
|
||||
|
||||
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
|
||||
|
||||
Name: dwarves
|
||||
Version: 1.15
|
||||
Release: 2%{?dist}
|
||||
Version: 1.16
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2
|
||||
Summary: Debugging Information Manipulation Tools (pahole & friends)
|
||||
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
|
||||
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}
|
||||
Summary: Debugging information processing library
|
||||
|
||||
|
@ -118,6 +127,20 @@ make install DESTDIR=%{buildroot}
|
|||
%{_libdir}/%{libname}_reorganize.so
|
||||
|
||||
%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
|
||||
- Add libdwarves version dependency to dwarves package
|
||||
|
||||
|
|
Loading…
Reference in New Issue