| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Undefined symbols need no address and siz printed. Avoid the initial
entry which is no real symbol. Avoid section symbols.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The binutils version showed more information since it distinguished
unique symbols, symbols in read-only and bss sections. The format
is now the same. In addition handle TLS symbols correctly but
differently from binutils nm since the latter drops information.
Instead use a @ suffix to indicate TLS similar to * to indicate
weak.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This new test PASSes, but looking at the size results will show
--reloc-debug-sections isn't making a huge difference for this case.
|
| | |
|
| | |
|
| | |
|
|\|
| |
| |
| |
| | |
Conflicts:
src/readelf.c
|
| | |
|
| | |
|
| | |
|
| | |
|
|\|
| |
| |
| |
| | |
Conflicts:
tests/Makefile.am: New tests merged.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
libebl/
* libebl.h (ebl_object_note_type_name): Add const char *name arg.
* eblhooks.h (object_note_type_name): Likewise.
* eblopenbackend.c (default_object_note_type_name): Likewise.
* eblobjnotetypename.c (ebl_object_note_type_name): Likewise.
And print version if name is "stapsdt".
* eblobjnote.c (ebl_object_note): Add output for "stapsdt" notes.
src/
* readelf.c (handle_notes_data): Call ebl_object_note_type_name
with note name.
|
| |\ \ |
|
| | | | |
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
A Dwarf_CU can come from either the debug_info compile unit or a
debug_type type unit section. Use the correct one for sanity checking
whether we have a truncated section.
|
| |/ |
|
| |
| |
| |
| |
| |
| | |
* linux-kernel-modules.c (vmlinux_suffixes): Guard definition
by check for zlib, bzlib or lzma defines to check it isn't empty.
(try_kernel_name): Use same guard for use of vmlinux_suffixes.
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| |\ \ |
|
| | |/ |
|
| |\ \ |
|
| | |/ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Drop struct where, introduce class locus, which is an abstract interface
that the real locus classes implement. Locus classes are still used as
values, no heap allocation was necessary, although if polymorphism is
necessary, loci can simply be new'ed and put in a vector etc.
- Formatting of most loci was kept the way it was, but some formats have
been improved. For example, DIE and abbrev loci now use attribute
name directly to point to the attribute in question.
- Low-level allocation helpers (mostly WIPE) were dropped and replaced
with constructors on those structures. Placement new has to be used
in a couple places to initialize data where REALLOC is still used.
- Functions that used to take struct where * now take locus const &. The
code was updated throughout.
- Values not corresponding to sections were removed from enum section_id.
Part was dropped outright, because they were there just to support WHEREs,
rel_* was moved to new class rel_target.
- Convert addr_recort, ref_record to classes inheriting off std::vector.
ref_record in fact became ref_record_T and is now parametrized by
locus type.
|
| | |
| | |
| | |
| | |
| | | |
wr_message () will ask for the id () filtering, so the "warning: " string
is already printed, so remove the same string from wr_vwarning ().
|
| | |
| | |
| | |
| | |
| | | |
Check that each code block start address is also mentioned in the
line table.
|
| | |
| | |
| | |
| | |
| | | |
Check that each decl or call attribute come in file/line and
column/line pairs.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Same as find (), but if the attribute name isn't found,
but there is is an abstract_origin or specification
attribute, then will try to find_integrate () the name
from that reference.
check_linkage_external_die.is_external () now uses it.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of asserting a form must exist, let form_class () return
max_dw_class, like ambiguous_class () does. max_dw_class is already
used as sentinel in read_die_chain () in case the attribute is unknown.
This lets things work out for the low level check_debug_info check and
then makes the higher-level checks complain about the unexpected form
instead. Added an example binary and test dwarflint/tests/run-upper.sh.
|
| | |
| | |
| | |
| | |
| | | |
* tests/run-dwarflint-self.sh: Add dwarflint itself.
* tests/run-elflint-self.sh: Add dwarfcmp, unstrip and dwarflint.
|
|\ \ \ |
|