forked from acmel/dwarves
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
- Loading branch information
Showing
4 changed files
with
183 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
v1.16 changes: | ||
|
||
BTF encoder: | ||
|
||
Andrii Nakryiko <[email protected]>: | ||
|
||
- 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 <[email protected]> | ||
|
||
- 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 <[email protected]>: | ||
|
||
- Avoid infinite loop trying to determine type with static data member of its own type. | ||
|
||
RPM spec file. | ||
|
||
Jiri Olsa <[email protected]> | ||
|
||
Add dwarves dependency on libdwarves1. | ||
|
||
pfunct: | ||
|
||
Arnaldo Carvalho de Melo <[email protected]> | ||
|
||
- 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 <[email protected]> | ||
|
||
Fix ptr_table__add_with_id() handling of pt->nr_entries, covering how | ||
BTF variables IDs are encoded. | ||
|
||
|
||
pglobal: | ||
|
||
Arnaldo Carvalho de Melo <[email protected]>: | ||
|
||
- 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 <[email protected]>: | ||
|
||
- Fixup issues pointed out by various coverity reports. | ||
|
||
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 <[email protected]> - 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 <[email protected]> - 1.15-2 | ||
- Add libdwarves version dependency to dwarves package | ||
|
||
|