| v1.27 |
| |
| Tue Jun 11 2024 |
| |
| f62409e1190c2cb4 dwarf_loader: Show the DIE offset when finding unexpected tag in die__process() |
| a9ae414fef421bde btf_loader: Initial support for BTF_KIND_DECL_TAG |
| d08776019ef6a561 pfunct: Disable collecting fn_stats when processing BTF |
| 72e88f29c6f7e142 pahole: Inject kfunc decl tags into BTF |
| ce4d0bc0200e322b pahole: Add --btf_feature=decl_tag_kfuncs feature |
| e3b1c322503269d3 pahole: Save input filename separate from output |
| d5847615d0a5c082 pahole: Describe expected use of 'default' in the man page |
| 912a8e3f3d19fa76 btf_encoder: Fix DWARF int type with greater-than-16 byte issue |
| a1f684fa018ddbfa pahole: Allow asking for extra features using the '+' prefix in --btf_features |
| 31c6ec74952898a6 pahole: Factor out routine to process "--btf_features=default" |
| 2046cc50578beb44 gobuffer: Add gobuffer__sort() helper |
| 9aba4c9220eebf81 tests: update reproducible_build test to use "default" |
| 0a9eceb3e5453aee pahole: Replace use of "all" with "default" for --btf_features |
| 2a6b7ec7ce981c3d tests/reproducible_build: use --btf_features=all,reproducible_build |
| 43bd3efa85656565 pahole: Add reproducible_build to --btf_features |
| e78c82db744eab77 pahole: Allow --btf_features to not participate in "all" |
| a9738ddc828d5ea0 tests/reproducible_build: Use --btf_features=all when encoding |
| d7edf9ae0388fb97 tests/reproducible_build: Validate the vmlinux file |
| c933676ce2780325 tests: Add a BTF reproducible generation test |
| dba7b5e847529cde pahole: Encode BTF serially in a reproducible build |
| edc23a0dae4f8996 core/dwarf_loader: Add functions to set state of CU processing |
| f632e757f7ba3f21 dwarf_loader: Add the cu to the cus list early, remove on LSK_DELETE |
| 7ddb9cfb91cd3d65 core: Add cus__remove(), counterpart of cus__add() |
| 6fa064b96853897c core: Add unlocked cus__add() variant |
| a7dee0e323ac5eef dwarf_loader: Remove unused 'thr_data' arg from dwarf_cus__create_and_process_cu() |
| 620d419a430f8fd8 dwarf_loader: Create the cu/dcu pair in dwarf_cus__nextcu() |
| 941cd9a15d09dd3c dwarf_loader: Introduce dwarf_cus__process_cu() |
| 7a2509e7ea639014 dwarf_loader: Separate creating the cu/dcu pair from processing it |
| 2d633d93cd4faf19 pahole: Disable BTF multithreaded encoded when doing reproducible builds |
| d6e05fd33cb9dc52 core: Allow asking for a reproducible build |
| 4faf35b97c3427d1 fprintf: Remove bogus deduction of negative hole from size of previous field |
| 47e83035c12c153b core: The padding in ancestor classes may be used in descendants |
| 9442420a8c204460 fprintf: Update 'last' variable for DW_TAG_inheritance as well |
| c52e4b7af88da5ab fprintf: Update the 'last' member when not finding the type for the current member |
| 1ecde473f9a07ac8 fprintf: Don't ignore DW_TAG_inheritance in the sum of members check |
| f32ec0c79f3e8065 btf_encoder: Dynamically allocate the vars array for percpu variables |
| 554c5e6a2736e0b6 PKG-MAINTAINERS: Add file with known pahole distro package maintainers |
| |
| v1.26 |
| |
| Tue Feb 27 2024 |
| |
| ba8f6eb0b6b67c6e NEWS: Add missing list of changes for v1.25 |
| 90201c2bde4b0ca8 prefcnt: cus__load_files() requires a non NULL conf_load |
| f86ed770b5396cd5 dtagnames: cus__load_files() requires a non NULL conf_load |
| b2e0f084eca03613 syscse: cus__load_files() requires a non NULL conf_load |
| 461f61ebaf8f3108 dwarf_loader: Print the line number in addition to the function when not finding the abstract origin |
| 6e665da56c78d436 pahole: Wait to find a DWARF CU with both the class and the type_enum |
| be638365781ed0c8 pahole: Improve error message when not resolving symbolic names in filters |
| e18ef2fed1b1a2c5 pahole: Implement --contains_enumerator=ENUMERATOR_NAME |
| 7146ad04b72b08a5 pahole: Do not use -1 to mean that a enumerator wasn't found in an enumeration |
| 97dce38eae062cf9 core: Introduce cu__for_each_enumeration() |
| 786ed0aa2ff5fe67 btfdiff: Do type expansion to cover "private" types and enumerations |
| 9661c589cae83c6b btf_loader: Fix loading of 32-bit signed enums |
| a25293a66b737263 btfdiff: Parallelize loading BTF and DWARF |
| e52cf114039af8f3 fprintf: When expanding types do it for union typedefs as well |
| d05d4f528d08da06 fprintf: Factor out the fprintf of a union declaration, for reuse |
| f97c080d4aac4f8f fprintf: When expanding types do it for struct typedefs as well |
| eb4f49bca27fcca2 fprintf: Add missing space after expanding a structure for a struct member |
| 0064b74c5ef0f358 fprintf: When expanding types do it for enums as well |
| 1fd08c0f0021e7fb fprintf: Print number of bit paddings in class member types |
| 4fa81a30b9ca3b78 fprintf: Print number of bit holes in class member types |
| 85bdd96404efca19 fprintf: Print number of holes in class member types |
| 08fc8e3285733ec8 fprintf: Introduce method to print info about type of last member |
| bd8d0536b4352b5d fprintf: Introduce struct to account holes in class member types |
| fdd815151054d840 pahole: Make sure the features string is NUL terminated |
| 884c43ea82a154ce CMakeList.txt: Bump version to the upcoming 1.26 release, not out of the door yet |
| c129fa7579483bba pahole: Add --btf_features_strict to reject unknown BTF features |
| 74a238a4368223c9 pahole: Add --supported_btf_features |
| 7bc9b9975545ab53 pahole: Add --btf_features support |
| 79e9df515e4d3e89 dwarves: Move ARRAY_SIZE() to dwarves.h |
| f5c6c1365e7bb3dc btf_encoder, pahole: Move BTF encoding options into 'struct conf_load' |
| 37e3bf08e0314efa pahole: Don't keep structs in multiple RB trees |
| d65499a8605c224b README: Remove old comments about ancient distros and add 'git submodule' instruction |
| 0a1944b19569c4f9 spec: Migrate license to a SPDX standardized one |
| 31bc0d7410572f6e dwarf_loader: DW_TAG_subroutine_type may have a DW_AT_byte_size |
| bfa033b07f50a202 pdwtags: Print DW_TAG_constant tags |
| afca84ff989d9729 fprintf: Add DW_TAG_constant pretty printer (constant__fprintf) |
| cb7eb753694be3e8 dwarf_loader: Add support for DW_TAG_constant |
| |
| v1.25 |
| |
| Thu Apr 13 2023 |
| |
| eab23ebd2ce22b3a fprintf: Fix `*` not being printed for pointers with btf_type_tag |
| c969e4969ccd2e7c btf_loader: A hack for BTF import of btf_type_tag attributes |
| 40ebd8b9e3312d0a fprintf: Correct names for types with btf_type_tag attribute |
| 4d17096076b2351f btf_encoder: Compare functions via prototypes not parameter names |
| 82730394195276ac fprintf: Support skipping modifier |
| d184aaa125ea40ff fprintf: Generalize function prototype print to support passing conf |
| a9498899109d3be1 dwarf_loader: Fix for BTF id drift caused by adding unspecified types |
| eeeab1c9e8b85fc7 fprintf: Support DW_TAG_LLVM_annotation in dwarf_tag_name() |
| 4ec4b64bd501986b CMakeLists.txt: Call cmake_minimum_required() before project() |
| 111dfd2cee118892 dwarf_loader: Only mark parameter as using an unexpected register when it does |
| 5851040e2468ba04 dwarf_loader: Fix parameter location retrieval for location lists |
| 721ca66d5be462b2 dwarf_loader: Fix detection of struct parameters |
| ef68019c357845b4 pahole: Update man page for options also |
| d58c61498ea78064 pahole: Update descriptions for btf_gen_optimized, skip_encoding_btf_inconsistent_proto |
| 9b2abc1c7a16c39d btf_encoder: Exclude functions with unexpected param register use not optimizations |
| a53c58158b761f8f dwarf_loader: Mark functions that do not use expected registers for params |
| 431df45378ef00f3 btfdiff: Exclude Rust CUs since those are not yet being converted to BTF on the Linux kernel |
| 1231b6b9b4d88e00 dwarf_loader: Fix sorting of Rust structs |
| c4eb1897d1f3841d core: Check that we're adding DW_TAG_member sorted by byte offset |
| b53d430aeab416e7 btf_encoder: Ensure ELF function representation is fully initialized |
| a3b47e41656d21e7 CMakeList.txt: Bump version to the upcoming 1.25 release, not out of the door yet |
| f104790698ae93f9 btf_encoder: Support delaying function addition to check for function prototype inconsistencies |
| 6d95d162c6c804c4 btf_encoder: Represent "."-suffixed functions (".isra.0") in BTF |
| c8e8dbcd71507618 btf_encoder: Rework btf_encoders__*() API to allow traversal of encoders |
| d381cc7458c53fdf btf_encoder: Refactor function addition into dedicated btf_encoder__add_func |
| 52b25808e44a8e7f btf_encoder: Store type_id_off, unspecified type in encoder |
| 75939e655a797896 dwarf_loader: Help spotting functions with optimized-out parameters |
| 2b5cb9bc0e905811 pahole: Sync with libbpf-1.1 |
| 45c044860c2abce7 dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel |
| 74f21ed08e4313f0 pahole: Set libbpf debug printer in -V mode |
| bc1538dcb14bc4d9 pahole: Use type__fprintf() directly for --compile |
| 51643cb290f91425 core: Introduce base_type__language_defined() |
| ba4bdc73806101dc dwarf_loader: DW_TAG_inlined_subroutine needs recoding by DW_AT_abstract_origin |
| 02d67c51765dfbd5 pfunct: Use zalloc() to make the code more robust |
| cd4d2d251e9a7f98 pahole: Use zalloc() to make the code more robust |
| e5e24ada4f5578ae core: Use zalloc() to make the code more robust |
| b72f5188856df0ab dwarves: Zero-initialize struct cu in cu__new() to prevent incorrect BTF types |
| d85b86ecc1df4076 emit: Support DW_TAG_atomic_type when emitting definitions for a typedef |
| 7d0bc9334d2f1143 fprintf: Support _Atomic typedefs |
| 8894c04f00e4c702 fprintf: Move the "typedef " invariant printf to the start of typedef__fprintf() |
| 3836623af1b5ff1f pahole: Allow skipping the emission of atomic typedefs |
| 6bb5a1fa990f5bd6 emit: Allow skip emitting the atomic typedefs |
| 8d2e166dd3d168d9 emit: Optionally pass a conf_fprintf struct to type_emissions__init |
| 8c2b37ec71423067 emit: Emit typedefs for atomic_ prefixed base types |
| a4f3a79da8d4ed8b emit: cu__type() == NULL means "void" |
| bcc648a10cbcd0b9 btf_encoder: Encode DW_TAG_unspecified_type returning routines as void |
| cffe5e1f75e1612e core: Record if a CU has a DW_TAG_unspecified_type |
| 75e0fe28bb02036d core: Add DW_TAG_unspecified_type to tag__is_tag_type() set |
| 121a46a026afac19 btf_encoder: Store the CU being processed to avoid changing many functions |
| 56bcfa9135312ffe fprintf: Emit "_Atomic" modifiers for DW_TAG_atomic_type |
| cf27a2b805f21356 core: Print more info on tag__assert_search_result() |
| d5012f7be79f1b81 btf_encoder: Add extra debug info for unsupported DWARF tags |
| 79d9a783ea74797a pahole: Support '--lang/--lang_exclude=asm' |
| e819d737de88dc1f pahole: Add "btf" to the format-path option man page |
| f01e5f3a849558b8 dwarf_loader: Support DW_TAG_label outside DW_TAG_lexblock |
| b84120772df33f93 pahole: Allow --compile to work with DWARF in addition to with BTF |
| 6fdb0140692acff0 dwarves: support DW_TAG_atomic_type |
| d7507140eab4bf9f emit: Don't mark a enum with nr_members == 0 as printed, its just a fwd decl |
| 843fe9bfab4859b4 emit: Check if disambiguated struct/enum/union name was already emitted in a previous CU |
| f5857bd34b220a64 pahole: Honour --compile when -C is used |
| 2bb968b567011f8a btf: Fix building with system libbpf |
| ea30d58a2329764b core: Conditionally define language encodings |
| |
| v1.24 |
| |
| Sat Apr 8 2023 |
| |
| eab23ebd2ce22b3a fprintf: Fix `*` not being printed for pointers with btf_type_tag |
| c969e4969ccd2e7c btf_loader: A hack for BTF import of btf_type_tag attributes |
| 40ebd8b9e3312d0a fprintf: Correct names for types with btf_type_tag attribute |
| 4d17096076b2351f btf_encoder: Compare functions via prototypes not parameter names |
| 82730394195276ac fprintf: Support skipping modifier |
| d184aaa125ea40ff fprintf: Generalize function prototype print to support passing conf |
| a9498899109d3be1 dwarf_loader: Fix for BTF id drift caused by adding unspecified types |
| eeeab1c9e8b85fc7 fprintf: Support DW_TAG_LLVM_annotation in dwarf_tag_name() |
| 4ec4b64bd501986b CMakeLists.txt: Call cmake_minimum_required() before project() |
| 111dfd2cee118892 dwarf_loader: Only mark parameter as using an unexpected register when it does |
| 5851040e2468ba04 dwarf_loader: Fix parameter location retrieval for location lists |
| 721ca66d5be462b2 dwarf_loader: Fix detection of struct parameters |
| ef68019c357845b4 pahole: Update man page for options also |
| d58c61498ea78064 pahole: Update descriptions for btf_gen_optimized, skip_encoding_btf_inconsistent_proto |
| 9b2abc1c7a16c39d btf_encoder: Exclude functions with unexpected param register use not optimizations |
| a53c58158b761f8f dwarf_loader: Mark functions that do not use expected registers for params |
| 431df45378ef00f3 btfdiff: Exclude Rust CUs since those are not yet being converted to BTF on the Linux kernel |
| 1231b6b9b4d88e00 dwarf_loader: Fix sorting of Rust structs |
| c4eb1897d1f3841d core: Check that we're adding DW_TAG_member sorted by byte offset |
| b53d430aeab416e7 btf_encoder: Ensure ELF function representation is fully initialized |
| a3b47e41656d21e7 CMakeList.txt: Bump version to the upcoming 1.25 release, not out of the door yet |
| f104790698ae93f9 btf_encoder: Support delaying function addition to check for function prototype inconsistencies |
| 6d95d162c6c804c4 btf_encoder: Represent "."-suffixed functions (".isra.0") in BTF |
| c8e8dbcd71507618 btf_encoder: Rework btf_encoders__*() API to allow traversal of encoders |
| d381cc7458c53fdf btf_encoder: Refactor function addition into dedicated btf_encoder__add_func |
| 52b25808e44a8e7f btf_encoder: Store type_id_off, unspecified type in encoder |
| 75939e655a797896 dwarf_loader: Help spotting functions with optimized-out parameters |
| 2b5cb9bc0e905811 pahole: Sync with libbpf-1.1 |
| 45c044860c2abce7 dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel |
| 74f21ed08e4313f0 pahole: Set libbpf debug printer in -V mode |
| bc1538dcb14bc4d9 pahole: Use type__fprintf() directly for --compile |
| 51643cb290f91425 core: Introduce base_type__language_defined() |
| ba4bdc73806101dc dwarf_loader: DW_TAG_inlined_subroutine needs recoding by DW_AT_abstract_origin |
| 02d67c51765dfbd5 pfunct: Use zalloc() to make the code more robust |
| cd4d2d251e9a7f98 pahole: Use zalloc() to make the code more robust |
| e5e24ada4f5578ae core: Use zalloc() to make the code more robust |
| b72f5188856df0ab dwarves: Zero-initialize struct cu in cu__new() to prevent incorrect BTF types |
| d85b86ecc1df4076 emit: Support DW_TAG_atomic_type when emitting definitions for a typedef |
| 7d0bc9334d2f1143 fprintf: Support _Atomic typedefs |
| 8894c04f00e4c702 fprintf: Move the "typedef " invariant printf to the start of typedef__fprintf() |
| 3836623af1b5ff1f pahole: Allow skipping the emission of atomic typedefs |
| 6bb5a1fa990f5bd6 emit: Allow skip emitting the atomic typedefs |
| 8d2e166dd3d168d9 emit: Optionally pass a conf_fprintf struct to type_emissions__init |
| 8c2b37ec71423067 emit: Emit typedefs for atomic_ prefixed base types |
| a4f3a79da8d4ed8b emit: cu__type() == NULL means "void" |
| bcc648a10cbcd0b9 btf_encoder: Encode DW_TAG_unspecified_type returning routines as void |
| cffe5e1f75e1612e core: Record if a CU has a DW_TAG_unspecified_type |
| 75e0fe28bb02036d core: Add DW_TAG_unspecified_type to tag__is_tag_type() set |
| 121a46a026afac19 btf_encoder: Store the CU being processed to avoid changing many functions |
| 56bcfa9135312ffe fprintf: Emit "_Atomic" modifiers for DW_TAG_atomic_type |
| cf27a2b805f21356 core: Print more info on tag__assert_search_result() |
| d5012f7be79f1b81 btf_encoder: Add extra debug info for unsupported DWARF tags |
| 79d9a783ea74797a pahole: Support '--lang/--lang_exclude=asm' |
| e819d737de88dc1f pahole: Add "btf" to the format-path option man page |
| f01e5f3a849558b8 dwarf_loader: Support DW_TAG_label outside DW_TAG_lexblock |
| b84120772df33f93 pahole: Allow --compile to work with DWARF in addition to with BTF |
| 6fdb0140692acff0 dwarves: support DW_TAG_atomic_type |
| d7507140eab4bf9f emit: Don't mark a enum with nr_members == 0 as printed, its just a fwd decl |
| 843fe9bfab4859b4 emit: Check if disambiguated struct/enum/union name was already emitted in a previous CU |
| f5857bd34b220a64 pahole: Honour --compile when -C is used |
| 2bb968b567011f8a btf: Fix building with system libbpf |
| ea30d58a2329764b core: Conditionally define language encodings |
| |
| Wed Aug 17 2022 |
| |
| d6c952893b1bbea9 dwarf_loader: Encode char type as signed |
| 23342fef5e5f6070 dwarf_loader: Fix elfutils dwfl_getmodules() error checking |
| 9712d9ec929fb6b3 btf_loader: Add support to BTF_KIND_ENUM64 |
| 35a11221b305a520 btf: Support BTF_KIND_ENUM64 |
| 3aa68ba050d4ddc4 libbpf: Sync with latest libbpf repo |
| c3d6522e0499c5b0 fprintf: Fix plural/singular when printing cacheline boundary |
| 384a16a011226163 btf_encoder: Normalize array index type for parallel dwarf loading case |
| d9e36dd9dd2a526a libbpf: Sync with latest libbpf repo |
| 49358dfe2aaae4e9 pahole: Add --lang_exclude to allow skipping compilation units written in some languages |
| 8ee363790b743728 pahole: Introduce --lang to ask for only compilation units written in some languages |
| c3f2fe2f6a81f13c core: Add string to id language lookup method |
| 3d0dfe0610517ff6 pahole: Don't try encode BTF when all CUs were filtered |
| 2730ef6965efd8e6 fprintf: preserve conf_fprintf pointer in tag__ptr_name |
| 1bc98ed290d2c833 btf_encoder: Collect info of per-cpu variables from threads |
| 31df013b70540072 dwarves: Set errno if load fails in cus__load_files() |
| f952a6f69f9508c8 pahole: Avoid segfault when parsing bogus file |
| 65d7273668ded59b pahole: Introduce --compile to produce a compilable output |
| 4d004e2314f3252e core: Ditch 'dwarves__active_loader' extern declaration, it was nuked |
| 4f332dbfd02072e4 emit: Notice type shadowing, i.e. multiple types with the same name (enum, struct, union, etc) |
| 0a82f74ce25a5904 core: Make type->packed_attributes_inferred a one bit member |
| fac821246c582299 core: type->declaration is just one bit, make it a bitfield member |
| 742f04f89da03665 emit: Search for data structures using its type in addition to its name |
| 32cc1481721c4b11 fprintf: Consider enumerations without members as forward declarations |
| 6afc296eeb180e25 emit: Fix printing typedef of nameless struct/union |
| 49a2dd657728675b fprintf: Check if conf->conf_fprintf is not NULL in when resolving cacheline_size |
| 46cec35ff0411e0f fprintf: Fix division by zero for uninitialized conf_fprintf->cacheline_size field |
| 73383b3a39afe86b libbpf: Update libbpf to the latest git HEAD |
| 21352753186ec582 pahole: Use per-thread btf instances to avoid mutex locking |
| 96d2c5c323255134 dwarf_loader: Prepare and pass per-thread data to worker threads |
| 724c8fddd71be1fe dwarf_loader: Receive per-thread data on worker threads |
| 2f7d61b2bfb59427 core: Define DW_TAG_skeleton_unit if not available on current dwarf.h |
| |
| v1.23 |
| |
| Wed Dec 8 2021 |
| |
| 54ae2f7f5e4f6328 Revert "fprintf: Allow making struct/enum/union anonymous" |
| 69fb1861de35120c Revert "pahole: Add --inner_anon option" |
| 005236c3e40eeb64 pahole: Add --inner_anon option |
| 7c5e35b63bd26f1d fprintf: Allow making struct/enum/union anonymous |
| d99d551930cf4b4b btf_encoder: Support btf_type_tag attribute |
| 3da248c3284ef905 man pages: Add missing --skip_encoding_btf_decl_tag entry |
| a58ecca0a89b142b man pages: Add missing --skip_encoding_btf_type_tag entry |
| b488c8d328845bd8 dwarf_loader: Support btf_type_tag attribute |
| a0cc68687f1281cd dutil: Move DW_TAG_LLVM_annotation definition to dutil.h |
| 76401e9e46f07753 libbpf: Sync with latest libbpf repo to pick support for BTF_KIND_TYPE_TAG |
| 0135ccd632796ab3 dwarf_loader: Warn about DW_TAG_skeleton_unit and give a workaround |
| 433dc780ca48944b fprintf: Add DWARF5 tags added in elfutils 0.170 |
| 7af9ed4aed182869 dwarf_loader: Print the hexadecimal value for unexpected tags in die__process() |
| ec62499774c4bcac btf_encoder: generate BTF_KIND_DECL_TAGs for typedef btf_decl_tag attributes |
| 468b4196f65458e8 dwarf_loader: support typedef DW_TAG_LLVM_annotation |
| 696c62180455fd29 btf_loader: Use cacheline size to infer alignment |
| 48f4086b766d2214 btf_loader: Propagate struct conf_load |
| 772725a77d3323c6 dwarves_fprintf: Move cacheline_size into struct conf_fprintf |
| cdd088c05cfed082 btfdiff: Suppress alignment tags with BTF as well as with DWARF |
| 836c139fdf6f2b13 btf_loader: Infer alignment info |
| 4db65fe0cd02b3cc core: Export tag__natural_alignment() |
| 43e8216c25ee767f fprintf: Fix __attribute__((__aligned__(N)) handling for struct members |
| c52f6421f21146ad btf: Rename btf_tag to btf_decl_tag |
| 3433c67bbd158e1d manpages: Minor fixes |
| e975d0fba833d02d btf_loader: Refactor class__fixup_btf_bitfields |
| 5282feee6d4d3a88 pahole: Add --skip_missing option |
| 6931e393f8f6d81f fprintf: Fix nested struct printing wrt attributes |
| 16a7acaba4466121 btf_encoder: Fix handling of percpu symbols on s390 |
| 3cde0135ca51de73 dwarf_loader: Fix heap overflow when accessing variable specification |
| a9c99e98815f06bd dwarves: Introduce conf_load->thread_exit() callback |
| cc6c7d473d518324 Update libbpf to get API to combine BTF |
| e38e89e8539b144a btf_encoder: Generate BTF_KIND_TAG from llvm annotations |
| aa8c494e65a77fa5 dwarf_loader: Parse DWARF tag DW_TAG_LLVM_annotation |
| 3d20210d84f61ee2 CMakeList.txt: Don't download libbpf source when system library is used |
| 38fad22d669ab044 libbpf: Get latest libbpf |
| 88431099950ab3e8 CMakeList.txt: Make python optional |
| |
| v1.22: |
| |
| Mon Aug 23 2021 |
| |
| 40a40df961e74aac core: Bump the chunk size for ptr_table uses in types, tags, functions tables |
| 9f0809e6a8e790a1 pahole: Introduce --ptr_table_stats |
| f035871495435e58 core: Add CU stats printer |
| c59e996c97eb5569 pahole: Fix races in accessing type information in live CUs |
| c34b6c6cc96b9669 pahole: Add missing limits.h include to get ULLONG_MAX definition |
| 5e8ad60d1f33bed6 CMakeList.txt: Look for obstack outside libc |
| 739bc50b90694ffe cmake: Add a module to find if obstack is in a separate library |
| 5244b47a883bee96 CMakeList.txt: Look for argp outside libc |
| 3f70d31571d47c64 cmake: Add a module to find if argp is in a separate library |
| 9f9588dc2bd8c955 fprintf: Add alternative method for reading the data cacheline size |
| 71867afd666f2945 core: Include missing limits.h to get PATH_MAX definition |
| 0d8d457fa325fb07 dutil: Include linux/stddef.h to build on Alpine Linux systems |
| bb02fec203463b9f README.tarball: Overcome --transform problem with symlinks |
| 9fed416b380a7a17 MANIFEST: Add lib/include/bpf |
| cb1cf166769a169e spec: Remove deleted libbtf.h from the RPM file list |
| d0c3dd18c7d81cff README.tarball: Remove hardcoded version, get it from 'git tag' |
| b5140d5e6c8cade8 MANIFEST: Remove long gone strings header files |
| 02fd228f6af7b04e MANIFEST: Add buildcmd.sh |
| 06e41eccc2d19263 buildcmd.sh: Add single build script for use in CI |
| eba3e874add53187 pahole: Consider type members's names when comparing unions, structs |
| f61d458c9126467e pahole: Consider type members's types when comparing unions, structs |
| 589a298829760a14 core: Introduce helpers for getting the first and next members of a type |
| 815041d6dc4d62bf pahole: Improve the type sorting routine to consider multiple types with same name |
| 93e26698693aca95 core: Remove extra ; in 'print_numeric_version' extern declaration |
| 19798784d7a715d0 btf_loader: Mark the 'level' arg to the libbpf error callback as __maybe_unused |
| 22763a8fc7ee5f79 btf_loader: Mark create_new_datasec() args as __maybe_unused |
| 38df86db2b65dd43 dwarf_loader: cus__load_debug_types() doesn't use its 'cus' arg, remove it |
| 16d646c07e98d66c dwarf_loader: Rename finalize_cu_immediately() to cus__finalize() to follow convention |
| 90599e6177f20696 dwarf_loader: Remove unused 'dcu' argument from finalize_cu_immediately() |
| 6fd4377a0db1e8d3 dwarf_loader: Remove unused 'dcus' argument from cu__finalize() |
| 2bb04ecf79880a97 dwarf_loader: Remove unused 'cus' argument from finalize_cu() |
| 9ada372a21d0abc2 dwarf_loader: Fix signed/unsigned comparision in tag__recode_dwarf_bitfield() |
| e4e9267c3a177ffa core: cus__fprintf_load_files_err() doesn't use its 'cus' argument |
| df92cb6b8e0f1577 core: Change last_seen_bit to uint32_t in class__find_holes() |
| 789d8b3e1a7210d1 core: Change aligned_start to uint32_t in class__find_holes() |
| 182cdcaed9055c76 core: Change cur_bitfield_end to uint32_t in class__find_holes() |
| 5900f43f10844971 core: Change bit_start and bit_end to uint32_t in class__find_holes() |
| 8634d8535f3fb25d btf_encoder: Fix signed/unsigned comparision |
| 8d2efa2b6c147c37 btf_encoder: has_arg_names() doesn't need the 'cu' pointer |
| 05f737076f81eab9 btf_encoder: btf_encoder__encode_tag() doesn't need the 'core_id' pointer |
| dc30e82b26dc98ef btf_encoder: btf_encoder__encode_tag() doesn't need the 'cu' pointer |
| 4360359e434b41db btf_encoder: btf_encoder__add_struct_type() doesn't need the 'cu' pointer |
| 6e1e4881a584ca54 btf_encoder: btf_encoder__add_func_proto() doesn't need the 'cu' pointer |
| 9fbfcee7d9708876 btf_encoder: No need to read the ehdr in btf_encoder__write_elf(), ditch it |
| 898cc490279c794b ctracer: No need to read the ehdr, ditch it |
| dee83e27dd69cb98 btf_encoder: No need to store the ehdr in the instance |
| 24404190b80aa6bf elf_symtab: Remove needless GElf_Ehdr pointer argument from the constructor |
| 74c2078e04755b6a dutil: elf_symtab__new() doesn't need the GElf_Ehdr *ep argument |
| 23ea62817c3c9d1d pahole: Move case fallthru comment to after the statement |
| 7a8e75cd9a99f618 elfcreator: elfcreator_copy_scn() doesn't need the 'elf' arg |
| 3925a5bd53d68edc syscse: zero_extend() doesn't need a 'cu' arg |
| 21b2933f018a954d pahole: Fix signedness of ternary expression operator |
| 4e11c13895556982 ctracer: Remove a bunch of unused 'cu' pointers |
| 54c1e93b8eada3db pahole: Use the 'prototypes' parameter in prototypes__load() |
| 8b495918e6b52c4c codiff: class__find_pair_member() doesn't need 'cu' args |
| 057be3d9936f78d9 core: class__find_member_by_name() doesn't need a cu pointer |
| ce9de90364d0fe98 core: Document type->node member usage |
| cead526d6b96e1d7 core: Fix nnr_members typo on 'struct type' comment docs |
| 7cfc9be1f27876f4 man-pages: Improve the --nr_methods/-m pahole man page entry |
| 3895127ce674cfb6 pahole: Clarify that currently --nr_methods doesn't work together witn -C |
| 2ea46285aca0c639 pahole: No need to store the class name in 'struct structure' |
| 4d8551396df5ce5a pahole: Multithreaded DWARF loading requires elfutils >= 0.178 |
| e57e23c72a7c0446 btf_encoder: Add methods to maintain a list of btf encoders |
| e9b83dba79a87935 list: Adopt list_next_entry() from the Linux kernel |
| 6edae3e768e6bc0d dwarf_loader: Make hash table size default to 12, faster than 15 |
| d2d83be1e2124785 pahole: Allow tweaking the size of the loader hash tables |
| ff7bd7083f36db80 core: Allow sizing the loader hash table |
| 3068ff36b7ff943d hash: Remove unused hash_32(), hash_ptr() |
| 8eebf70d05d881cf dwarf_loader: Use a per-CU frontend cache for the latest lookup result |
| a2f1e698487b783c core: Use obstacks: take 2 |
| dca86fb8c2220f9a dwarf_loader: Add comment on why we can't ignore lexblocks |
| 9d0a7ee0c38ebac5 pahole: Ignore DW_TAG_label when encoding BTF |
| d40c5f1e20795938 core: Allow ignoring DW_TAG_label |
| 51ba83192979916e pahole: Ignore DW_TAG_inline_expansion when encoding BTF |
| 903863889131a7fa core: Allow ignoring DW_TAG_inline_expansion |
| 20757745f04ace54 pahole: Allow encoding BTF with parallel DWARF loading |
| 5a85d9a450819500 core: Zero out unused entries when extending ptr_table array in ptr_table__add() |
| d133569bd0f0b422 pahole: No need to read DW_AT_alignment when encoding BTF |
| 21a41e5386938db1 dwarf_loader: Allow asking not to read the DW_AT_alignment attribute |
| 1ef1639039b56005 dwarf_loader: Do not look for non-C DWARF attributes in C CUs |
| 88265eab35666f34 core: Add cu__is_c() to check if the CU language is C |
| 1caed1c443d4a0dc dwarf_loader: Add a lock around dwarf_decl_file() and dwarf_decl_line() calls |
| dd13708f2fd7557b btfdiff: Use multithreaded DWARF loading |
| f95f7838499f94c3 btfdiff: Use --sort for pretty printing from both BTF and DWARF |
| 3e1c7a20770ec432 pahole: Introduce --sort |
| 967290bc7176e3c2 pahole: Store the class id in 'struct structure' as well |
| 2b45e1b6d04b147c dwarf_loader: Defer freeing libdw Dwfl handler |
| 35845e7e41872158 core: Provide a way to store per loader info in cus and an exit function |
| 5365c45177643f35 pahole: Keep class + cu in tree of structures |
| fb99cad539e58638 dwarf_loader: Parallel DWARF loading |
| 75d4748861ad98cf pahole: Disable parallell BTF encoding for now |
| 1c60f71daacbe4d0 pahole: Add locking for the structures list and rbtree |
| 46ad8c01585df768 dwarf_loader: Introduce 'dwarf_cus' to group all the DWARF specific per-cus state |
| d963af9fd8148ba0 dwarf_loader: Factor common bits for creating and processing CU |
| 0c5bf70cc1259162 fprintf: class__vtable_fprintf() doesn't need a 'cu' arg |
| 38ff86b149e1aa9a fprintf: string_type__fprintf() doesn't need a 'cu' arg |
| a75c342ac2fc6c54 core: Ditch tag__free_orig_info(), unused |
| 80fe32fd294ac15e core: variable__name() doesn't need a 'cu' arg |
| caa219dffcb41422 core: base_type__name() doesn't need a 'cu' arg |
| 7569e46d3515f93e core: namespace__delete() doesn't need a 'cu' arg |
| de4e8b7f178257d5 core: {tag,function,lexblock}__delete() doesn't need a 'cu' arg |
| 789ed4e3a2c34b54 core: ftype__delete() doesn't need a 'cu' arg |
| 6340cb462767aa95 core: enumeration__delete() doesn't need a 'cu' arg |
| 33e44f5295702d95 core: type__delete() doesn't need a 'cu' arg |
| 0f54ca9c827e9ef7 core: class__clone() doesn't need a 'cu' arg |
| 2b2014187b811243 core: class__delete() doesn't need a 'cu' arg |
| f40900eba656db3b core: type__delete_class_members() doesn't need a 'cu' arg |
| 50916756d59ad7f9 core: class_member__delete() doesn't need a 'cu' arg |
| 2e50463c3aa149d3 core: type__clone_members() doesn't need a 'cu' arg |
| a66208355ea8108c core: class_member__clone() doesn't need a 'cu' arg |
| 33e0d5f874dc22c4 pahole: Introduce --prettify option |
| bc36e94f32e662aa pahole: Try harder to resolve the --header type when pretty printing |
| fcfa2141c375849b pahole: Make prototype__stdio_fprintf_value() receive a FILE to read raw data from |
| 1a65d232b040fae6 man-page: Move the PRETTY PRINTING header earlier |
| 2d35630fa55de2bc pahole: Make pipe_seek() honour the 'fp' arg instead of hardcoding stdin |
| 9aa01472d9655e1b pahole: Rename 'fp' to 'output' in prototype__stdio_fprintf_value() |
| 472b94018055873d pahole: Use the supplied 'fp' argument in type__instance_read_once() |
| 63992cb02a69485b core: Use namespace->name in class__clone() |
| ced4c34c37acd185 core: Remove strings.c, unused |
| adbb66c2957d9eef ctf_loader: Use uint32_t instead of strings_t, that is going away |
| ad707445b3fcaf11 core: Remove base_type_name_to_size_table.sname, unused |
| f8d571934b96ea35 pahole: Add missing bpf/btf.h include |
| deb6a4a4921b33ec libctf: Comment out unused CTF encoding functions |
| 82155bc92f726c43 btf_loader: Add missing bpf/btf.h include |
| 05f1f9dece4ed54d btf_encoder: Add missing bpf/btf.h include |
| f4a77d03909c1cf8 pahole: Use conf_load.kabi_prefix |
| 2b9bd83e63bacb59 dwarf_loader: Make attr_suffix() handle kabi_prefix |
| daaafeb35f168fd1 dwarf_loader: Pass conf_load to functions calling attr_string() |
| def39099c1920346 ctf_loader: No need for the 'strings' extern, not used |
| 2499920ac8d88b82 btf_loader: No need for the 'strings' extern, not used |
| a388aaf489f945d4 dwarf_loader: Remove unused strings variable and debug_fmt_ops->{init,exit}() |
| 3d3b7b3287617b8f core: Remove unused debug_fmt_ops->dwarf__strings_ptr() |
| 05687c547e9f22e8 core: Remove unused cu__string() method |
| a201149e181be613 dwarf_loader: No need to strdup() what dwarf_formstring() returns |
| 6b7f1b72f9a958e4 core: No need for debug_fmt_ops->variable_name() anymore |
| 9d0e3ab9a29c2e81 pahole: function__name() doesn't need a 'struct cu *' argument |
| a7d789a4f841b0ea core: Make variable->name a real string |
| b5694280ec5b1f1f core: Make label->name a real string |
| e974d1b2404154ea pahole: class_member_filter__new() doesn't need a 'struct cu *' argument |
| 0275e8d24975c531 pahole: class_member_filter__parse() doesn't need a 'struct cu *' argument |
| 90183e8e4da43785 pahole: tag__real_sizeof() doesn't need a 'struct cu *' argument |
| 5cb91927385d7b75 pahole: Rename tag__fprintf_hexdump_value() to instance__fprintf_hexdump_value() |
| 75c769a900185faf pahole: enumerations__lookup_entry_from_value() doesn't need to return a CU anymore |
| 1edca2655284d968 pahole: enumeration__lookup_entry_from_value() doesn't need a 'cu' argument |
| f8d98eff756bf406 core: Ditch unused enumeration__prefix_len() method |
| 5cc365164a4cba46 core: Ditch unused enumeration__prefix() method |
| e18c60d793935ab6 pahole: enumeration__lookup_value() doesn't need a 'cu' argument |
| 4b877c8e6762c42f pahole: enumeration__lookup_enumerator() doesn't need a 'cu' argument |
| 3ff11828fee01a91 core: enumeration__emit_definitions() doesn't need a 'cu' argument |
| 0947d6e7954d752d core: enumeration__fprintf() doesn't need a 'cu' argument |
| bb22f5bb0a137342 core: Make enumeration__max_entry_name_len() static |
| dc83336171d1157c core: enumeration__max_entry_name_len() doesn't need a 'cu' argument |
| ec1667c76db61e2f core: Make enumeration__calc_prefix() static |
| 45ec63ed20a56557 core: enumeration__calc_prefix doesn't need a 'cu' argument |
| 2fae84e2f79726fb btf_encoder: btf_encoder__add_enum_type() doesn't need a 'cu' argument, ditch it |
| 96243fdd79c5c45d core: enumerator__name() doesn't need a 'cu' argument, ditch it |
| ee5c12893b2e8aa8 core: Ditch dwarves__active_loader, unused |
| 713239bc008910ff core: Make enumerator->name a real string |
| 7721cc17aca7020d emit: type__emit_fwd_decl() isn't used outside emit.c, make it static |
| 9aa5db7acd420d55 emit: type__emit_fwd_decl() doesn't need a cu arg |
| c46f91ef6f9cd0a1 emit: type_emissions__find_definition() doesn't need a cu arg |
| c127d25daf88c1a2 core: class__name() doesn't need a cu arg |
| 00e8c5fe216755d6 core: type__name() doesn't need a cu arg |
| b99c4008acca8794 core: Make namespace->name a real string |
| 379a73c6eb4633d4 core: Make class_member->name a real string |
| 3280cb41768a7130 core: Make parameter->name a real string |
| f009162fd133d155 core: Make base_type->name a real string |
| e2ee753fa74ca570 pahole: Disable incomplete CTF encoder |
| 0d13bc50ee8dbdf8 core: Ditch unused cu__find_struct_by_sname() |
| 46f3f372416d7f9f core: Convert cu__find_base_type_by_sname_and_size to search for a string |
| f84e8777eada296a core: Convert cu__find_enumeration_by_sname_and_size to search for a string |
| a16c82f7110467b7 dwarf_loader: Rename strings_t 'name' to 'sname' to clarify usage |
| 82e5b5101a6adf73 core: Make function->name a real string |
| 4f73cac85321bd5b core: Make function->linkage_name a real string |
| a93160df5335ed2e dwarf_loader: Make dwarf_tag->decl_file a real string |
| a3fcbcacf79787d6 pahole: Allow specifying the number of threads to use while loading files |
| d70b2562ee5d90f2 pahole: Make '-j' available for use as number of jobs (threads) |
| 41a283c65d300945 core: Protect cus->cus with a mutex |
| 972065482a7f714d core: Make 'struct cus' opaque, only visible in dwarves.c |
| 3895b29060fdc21e core: Introduce helper to return number of cu entries in a 'struct cus' |
| 874e750fb8bddcad core: Move cus__find_pair() from codiff to the core |
| bf74fc1fcf1ab78e core: Introduce helper to return if there is no cu entries in a 'struct cus' |
| 7020f9214328ac8d core: Prepare cus__find_cu_by_name() for locking |
| 4bf7285b37108222 core: Prepare cus__find_function_at_addr() for locking |
| 73a2fd1e5a70c7f2 core: Prepare __cus__find_struct_by_name() for locking |
| 5020bf721b204673 core: Prepare cus__find_type_by_name() for locking |
| d124926baf2366a2 core: Initialize cu->priv in cu__new() |
| 3ec54ee72ff7c5b1 CMakeList.txt: Bump version to the upcoming 1.22 release, not out of the door yet |
| 1ef87b26fd268b52 Revert "btf_encoder: Reduce the size of encode_cu() by moving function encoding to separate method" |
| 7869cc113b0b5a3d dwarf_loader: Separate non-LTO per CU processing + BTF encoding part |
| de3a7f912559433c btf_encoder: Reduce the size of encode_cu() by moving function encoding to separate method |
| d348b37ed16249e0 btf_encoder: Reduce the size of encode_cu() by moving var encoding to separate method |
| f62196d3be5a8765 btf_encoder: No need to set the endianness twice when encoding into an ELF file |
| 819f83bd9736b9c8 btf_encoder: Pass detached_filename to the constructor |
| 7ed4ddc46826538e btf_encoder: Adopt writing to raw file method |
| 1498094d335f697a btf_encoder: Rename btf__encode_in_elf to btf_encoder__write_elf, shortening function signature |
| cd2b8978c43ea00a btf_encoder: Combine btf__write_elf() with btf__encode_in_elf() |
| 18a3e9711ccc6887 btf_encoder: Move duplicate code to btf_encoder__encode() |
| 9eb3d7a29de32bf4 btf_encoder: Pass the 'skip_encoding_vars' to the constructor |
| 707101ec38d76958 btf_encoder: No need to export the 'struct btf_definition', make it opaque |
| f1feaa94c7a92e5c libbpf: bump dependency to >= 0.4.0 |
| 1b50808c2958dde3 libbpf: If LIBBPF_EMBEDDED=OFF and libbpf-dev/pkgconfig is not available, fail the build |
| 790dfbda79444d11 headers: Rebame __unused to __maybe_unused to avoid clashes with system headers |
| 82756ea3eaf1f6e7 libbpf: Fixup patch to allow to use packaged version |
| ba953a53be25765e README: Add documentation for -DBUILD_SHARED_LIBS |
| aa2027708659f172 CMakeLists.txt: Enable SHARED and STATIC lib creation |
| ae2581647e849488 libbpf: Allow to use packaged version |
| 743f2536d8b876a4 btf_encoder: Move libbtf.c to btf_encoder.c, the only user of its functions |
| 6f72dddbed0e1bf8 btf_encoder: Move PERCPU_SECTION define to the only source file using it |
| f0f5b4f2bc34b029 btf_encoder: Move library global variable btf_gen_floats to btf_encoder class |
| 09970b03bd309d83 btf_encoder: Ditch unused 'btf_encoder__verbose' global variable |
| 1bf2e3511a1386c4 btf_encoder: Use encoder->verbose instead of btf_encoder__verbose |
| 4ffa484b6a04530b btf_encoder: Adopt btf__log_func_param() and use encoder->verbose |
| 729da7613b399f9c btf_encoder: Adopt btf__log_member() and use encoder->verbose |
| be75b76b6b9e479f btf_encoder: Adopt btf__log_type() and use encoder->verbose |
| 9f19e96001f72c49 btf_encoder: No need to pass encoder->percpu_secinfo to btf_encoder__add_datasec() |
| 869c177f8e13ce12 btf_encoder: Make btf_encoder__add_var_secinfo() receive a btf_encoder pointer |
| f0e8cd68f5dcb20b btf_encoder: Adopt btf__encode_var_secinfo() as btf_encoder__add_var_secinfo() |
| cc646d93d18270e9 btf_encoder: Adopt btf__encode_datasec_type() as btf_encoder__add_datasec() |
| b0f71fabdeee329b btf_encoder: Adopt btf__encode_var_type() as btf_encoder__add_var() |
| 1aece1e7e6d593db btf_encoder: Adopt btf__encode_enum_val() as btf_encoder__add_enum_val() |
| 4371b3cd5b9b18e6 btf_encoder: Adopt btf__encode_enum() as btf_encoder__add_enum() |
| b536947512efcb7e btf_encoder: Adopt btf__encode_enumeration_type() as btf_encoder__add_enum_type() |
| 1bc29591ec010fa8 btf_encoder: Adopt btf__encode_func_proto_param() as btf_encoder__add_func_param() |
| 393febe592e94f4a btf_encoder: Adopt btf__encode_func_proto() as btf_encoder__add_func_proto() |
| 4eb4c03578b29791 btf_encoder: Adopt btf__encode_array() as btf_encoder__add_array() |
| 06cd9f00c69d11bd btf_encoder: Adopt btf__encode_struct() as btf_encoder__add_struct() |
| 0b29d5a65ccef5f6 btf_encoder: Adopt btf__encode_member() as btf_encoder__add_field() |
| 3e2a1f7ddc930d3c btf_encoder: Adopt btf__encode_struct_type() as btf_encoder__add_struct_type() |
| 2c7a2f270ef7bcea btf_encoder: Adopt btf__encode_ref_type() as btf_encoder__add_ref_type() |
| 07d4ec9cef0c1619 btf_encoder: Adopt btf__encode_float_type() as btf_encoder__add_float() |
| 68ed8af85908e432 btf_encoder: Adopt btf__encode_base_type() as btf_encoder__add_base_type() |
| 14ab2e036147b6bc libbtf: Ditch unused btf_elf__verbose_log() macro |
| 539c94fee9315254 libbtf: Ditch btf_elf class, unused |
| 282a8a2187bde9bd btf_encoder: Use 'struct btf' directly, stop using btf_elf |
| dd0b01f56837794e libbtf: Remove unused ELF fields and calls from btf_elf |
| a0c5f49b0c405b1b btf_encoder: Phagocytize percpu_secinfo from btf_elf |
| c288e29d06c380b5 pahole: Rename 'encoder' to 'btf_encoder' as we support multiple formats |
| 46a3e3a87a8963ca btf_encoder: Move the global btf_encoder to its users, like pahole |
| fa849010b4565015 btf_encoder: Adopt the cu__encode_btf() method, as btf_encoder__encode_cu() |
| 3be437c5e7d2777e btf_encoder: Set btf_encoder__verbose in just one place, its users |
| e1e787af4496b51f btf_encoder: Move btf_elf__verbose var to btf_encoder class |
| 66f4054252ab996e btf_encoder: Adopt btf_elf__force, its only used in btf_encoder methods |
| 5e1207754eb67249 pahole: Adopt btf_encoder object instantiation from btf_encoder |
| 0208952e8ffcfdc3 btf_encoder: Move the function encode() to be a btf_encoder method |
| bcc5f95364da96bb btf_encoder: Temporarily expose the 'encoder' variable |
| e27be59f10c7c6e3 btf_encoder: Move 'filename' member from btf_elf to btf_encoder |
| da9d70a16ff01492 btfdiff: Support diffing DWARF vs detached BTF |
| 6bc135c8f49696a9 btf_encoder: No need for calling btf_encoder__encode() from cu__encode_btf() |
| 48a0fa2ef7b546a3 btf_encoder: Move btf_elf based encode_in_elf and write_elf methods to btf_encoder |
| cc8eae604dc07b5e btf_encoder: Move collect_symbols() call to btf_encoder constructor |
| 96e59c55686bccaf btf_encoder: Remove needless hash.h include, not used anymore |
| 92f8852d8d178966 btf_encoder: Move global elf_functions table to the btf_encoder class |
| aa48ed55a790c2d5 btf_encoder: Move ELF's ehdr from btf_elf to btf_encoder |
| b3701a8346a6ea71 btf_encoder: Move 'symtab' from btf_elf to btf_encoder |
| be8dac48691f6578 btf_encoder: Move percpu members from btf_elf to btf_encoder |
| 7f70877b198200ac btf_encoder: Add a 'verbose' member for encoder specific logging requests |
| ef8a48b3bc7cda1f btf_encoder: Move 'array_index_id' global variable to 'struct btf_encoder' |
| f3e6edffd7210265 btf_encoder: Move percpu vars global variables to btf_encoder class |
| 14053c490bf68a49 btf_encoder: Adopt collect_function() as a btf_encoder method |
| 049675f4a5401ac2 btf_encoder: Adopt collect_per_cpu_var() as a btf_encoder method |
| 21b5e9b368228502 btf_encoder: Adopt collect_symbol() as a btf_encoder method |
| e40bc12ddf42b4a8 btf_encoder: Move 'need_index_type' global variable to 'struct btf_encoder' |
| cccfeec3c7d68f89 btf_encoder: Make tag__encode_btf() its encode_tag() method |
| 65b3c598ab24a14a btf_encoder: Move 'has_index_type' global variable to 'struct btf_encoder' |
| a5c732e712564798 btf_encoder: Introduce 'struct btf_encoder' to have all the current globals |
| bd4e585d81a35862 btf_encoder: Replace btfe with btf in tag__encode_btf() |
| de2676159d8472b7 btf_encoder: Move encode_enumeration_type() from btf_elf to btf |
| 80dec71c934fc96a btf_encoder: Move encode_struct_type() from btf_elf to btf |
| 6d7790a5d4fc68a4 btf_encoder: Move add_datasec_type() from btf_elf to btf encode_datasec_type() |
| 12d340c321e31564 btf_encoder: Move add_var_secinfo() from btf_elf to btf encode_var_secinfo() |
| d90b38c1f3ca9171 btf_encoder: Move add_var_type() from btf_elf to btf encode_var_type() |
| bce82c1a00a9beee btf_encoder: Move add_func_proto() from btf_elf to btf encode_func_proto() |
| 188f25b74130d131 btf_encoder: Move add_enum() from btf_elf to btf encode_enum() |
| f82bd80a5c175425 btf_encoder: Move add_struct() from btf_elf to btf encode_struct() |
| 1216aebd27ecd4e6 btf_encoder: Move add_array() from btf_elf to btf encode_array() |
| a96c91261e731602 btf_encoder: Move add_ref_type() from btf_elf to btf encode_ref_type() |
| a97ed8080a354487 btf_encoder: Move add_member() from btf_elf to btf encode_member() |
| 56e0c2d4ccc7a9bd btf_encoder: Move add_base_type() from btf_elf to btf encode_base_type() |
| adeeb9ebcf7ef8bd btf_encoder: Move add_float_type() from btf_elf to btf encode_float_type() |
| 37d3b8a1cedac677 btf_encoder: bpf__log_func_param() doesn't need the btfe arg |
| 64d216f57e7a229f btf_encoder: Move log_member() from btf_elf to btf |
| 20bb260428c0a1ad btf_encoder: Move log_type() from btf_elf to btf |
| 16d026ce5db765c9 btf_encoder: Move log_err() from btf_elf to btf |
| c5f594eaa9b5ab8c btf_encoder: Remove 'elf' from btf_elf__int_encoding_str() name |
| c81d11b8bb80bed1 btf_elf: Remove base_btf member, used only in the constructor |
| 69f5fff50e442cad btf_elf: No point in falling back to raw BTF in btf_new() |
| 3fcf804a7e69aa4f btf_elf: No point in looking at the filename for /sys/kernel/btf in btf_elf__new() |
| c9eb447502b771c5 libbtf: Ditch unused btf_elf__string() method |
| a355a245fb48b05f libbtf: Remove unused btf_elf__load() |
| 3de65d433ab18301 btf_encoder: Move printable_name() from btfe to btf |
| 7fb31d787d3deec1 btf_loader: Stop using libbtf.h and the btf_elf class |
| e431c18b80650545 btf_loader: cu__fixup_btf_bitfields doesn'n need btfe parameter, ditch it |
| 8c1919c10df8a79f btf_loader: class__fixup_btf_bitfields doesn'n need btfe parameter, ditch it |
| 4d2ae0d9049e47c5 btf_elf: Remove unused btfe->priv member |
| b54b74edfcd0dc8c btf_loader: Add a local 'btf' var to prep next patches |
| 52bedef0fddaa227 btf_loader: Move load_sections() from btf_elf to btf |
| ac3f2952a854fccc btf_loader: Move load_types() from btf_elf to btf |
| 1a33deae144dbd22 btf_loader: Move create_new_tag() from btfe to cu |
| 8323cb33bc73817a btf_loader: Move create_new_datasec() from btfe to cu |
| 6fb41bbf8e31f3cf btf_loader: Move create_new_variable() from btfe to cu |
| 9122424dda37ccff btf_loader: Move create_new_typedef() from btfe to cu |
| dd3e9ab4a00f8cf9 btf_loader: Move create_new_forward_decl() from btfe to cu |
| cca6b51d292df6f1 btf_loader: Move create_new_subroutine_type() from btfe to cu |
| ba1b77d01dda3ac0 btf_loader: Move create_new_enumeration() from btfe to cu |
| a58bc8300f13c93f btf_loader: Move create_new_union() from btfe to cu |
| 367f5fe74cbb35ec btf_loader: Move create_new_class() from btfe to cu |
| 2460bead8a8fc02f btf_loader: The create_members() function doesn't need the btfe arg |
| 1136795fec7ff6bf btf_loader: Move create_new_array() from btfe to cu |
| ab2f5028916c7822 btf_loader: Move create_new_float_type() from btfe to cu |
| 6b452a1cc5f2f22b btf_loader: Move create_new_int_type() from btfe to cu |
| 073a5f69ef19700a btf_loader: Move create_new_function() from btfe to cu |
| 29ad464f73286067 btf_loader: Move load_ftype() from btfe to cu |
| 407693e2cabfa7a3 btf_loader: Pass cu to the load_sections/types routines |
| 89b9c4f8851ebc8f libbtf: Remove the 'base_btf' global var, now unused |
| 6f70d0accaf17f74 pahole: Use conf_load->base_btf to call cu__encode_btf() |
| 0e77be409969631b btf_loader: Use conf_load->base_btf instead of the global btf_base var |
| 6ee61b161dbcc42c pahole: Set conf_load.btf_base when applicable |
| b8255beb12c02d76 core: Allow passing the base_btf object via 'struct conf_load' |
| f93e05d8bd45d4b3 btf_encoder: Pass the base BTF object to the BTF encoder |
| 81797a00fbdd1017 btf_elf: Remove unused 'wordsize' member |
| ecc888b855c249a6 btf_loader: Use btf__pointer_size() to set cu->addr_size |
| e6b69ffc74dcb3f0 btf_elf: Remove unused is_big_endian member |
| 81fe7d688de85fa2 btf_loader: Use btf__endianness() instead of to be removed btfe member |
| 9f8ce7e1137f22c1 libbtf: Remove unused btf_elf->raw_btf member |
| 89be5646a03435bf pahole: Allow encoding BTF into a detached file |
| 22a76fbc8b33a3cd btf_loader: Use btf__parse_split() |
| c9d4c106ab95cd8c dwarf_loader: Add define for DW_OP_addrx |
| 76f7844c817eeac5 libbtf: Fix typo |
| 3d510406ff363056 pahole: Add --kabi_prefix flag |
| 0d17503db0580a66 btf_encoder: fix and complete filtering out zero-sized per-CPU variables |
| fb418f9d8384d3a9 dwarves: Make handling of NULL by destructos consistent |
| f049fe9ebf7aa9c2 dutil: Make handling of NULL by destructos consistent |
| 1512ab8ab6fe76a9 pahole: Make handling of NULL by destructos consistent |
| 1105b7dad2d0978b elf_symtab: Use zfree() where applicable |
| 131275fa20437dec codiff: Use zfree() where applicable |
| 6784b03fd447f507 dutil: Adopt the zalloc()/zfree() from perf |
| d7f5824a9e1895d1 libctf: Use zfree() where applicable |
| 45d9eb8602b42a6b pahole: Use zfree() where applicable |
| f48cc78e8e6e56df dwarf_loader: Use zfree() instead of ad-hoc implementation |
| d0f6a4a1da524873 gobuffer: Use zfree() and make delete accept NULL, like free() |
| db37185d16d4a56d dwarves: Use zfree() |
| e7e86c75e149c161 libbtf: Use zfree() |
| 972001e58e9f5ed9 dutil: Adopt zfree(), to use it more pervasively |
| 5847901abf13e8bd dwarves: Plug leaks in cu__new() found by covscan |
| 32114e611a93b046 dwarf_loader: Call dwarf_cu__delete() when aborting the load |
| 26bd4c41646a64b9 dwarf_loader: Delete the allocated CU when aborting |
| d8940df90b4a952b dwarf_loader: Make all ABORT returns go thru a single exit label |
| 3ba54ee43a301419 dwarf_loader: Use zalloc() to allocate dwarf_cu |
| f3957627bb3e3431 dwarf_loader: Make dwarf_cu__delete() accept NULL, just like free() |
| 8772c9d827813d4d dwarves: Accept NULL in cu__delete(), just like free() accepts |
| 25cc0c77545cefbc dwarf_loader: Check if we have a CU after the loop in cus__merge_and_process_cu() |
| 2f30062b546de1ef dwarf_loader: Check tag__recode_dwarf_bitfield() return, may be NULL |
| d68fd2bbc59291f3 ctracer: Initialize the 'parm_list' variable, detected by covscan |
| 5b0fb9745e1e9597 codiff: Fix usage of negative errno values with strerror(), reported by covscan |
| cba940fb86a46fa9 btf_loader: Fix some memory leaks found by covscan |
| 674063b1ea4156d2 loaders: Plug enumeration__delete() leak detected by covscan |
| 505a1f5615c5064a dwarves: Stop using obstacks |
| 872658b88021b487 CMakeLists.txt: Specify the file extension of srcs |
| aa8519378a37c9a5 README: Mention how to specify another prefix |
| 58a98f76ac95b1bb btf: Remove ftrace filter |
| 7c60b0443cb01795 pahole: Fix error message when --header couldn't be read |
| 7eea706c14997b4f pahole: Introduce --with_flexible_array option to show just types ending in a flexible array |
| |
| v1.21: |
| |
| Fri Apr 9 2021 |
| |
| ae0b7dde1fd50b12 dwarf_loader: Handle DWARF5 DW_OP_addrx properly |
| 9adb014930f31c66 dwarf_loader: Handle subprogram ret type with abstract_origin properly |
| 5752d1951d081a80 dwarf_loader: Check .notes section for LTO build info |
| 209e45424ff4a22d dwarf_loader: Check .debug_abbrev for cross-CU references |
| 39227909db3cc2c2 dwarf_loader: Permit merging all DWARF CU's for clang LTO built binary |
| 763475ca1101ccfe dwarf_loader: Factor out common code to initialize a cu |
| d0d3fbd4744953e8 dwarf_loader: Permit a flexible HASHTAGS__BITS |
| ffe0ef4d73906c18 btf: Add --btf_gen_all flag |
| de708b33114d42c2 btf: Add support for the floating-point types |
| 4b7f8c04d009942b fprintf: Honour conf_fprintf.hex when printing enumerations |
| f2889ff163726336 Avoid warning when building with NDEBUG |
| 8e1f8c904e303d5d btf_encoder: Match ftrace addresses within ELF functions |
| 9fecc77ed82d429f dwarf_loader: Use a better hashing function, from libbpf |
| 0125de3a4c055cdf btf_encoder: Funnel ELF error reporting through a macro |
| 7d8e829f636f47ab btf_encoder: Sanitize non-regular int base type |
| |
| v1.20: |
| |
| Tue Feb 2 2021 |
| |
| 8d6f06f053a06829 (HEAD -> master, seventh/master, quaco/master, origin/master, origin/HEAD) dwarf_loader: Add conditional DW_FORM_implicit_const definition for older systems |
| 66d12e4790b7c5e5 dtagnames: Stop using the deprecated mallinfo() function |
| 1279e439b622aeb5 cmake: Bump minimum required version to 2.8.12 as per upstream support warning |
| b1eaf0da6d1f72b2 dwarves: Make enum prefix search more robust |
| d783117162c0212d dwarf_loader: Handle DWARF5 DW_TAG_call_site like DW_TAG_GNU_call_site |
| 3ff98a6396e91d0a dwarf_loader: Support DW_FORM_implicit_const in __attr_offset() |
| b91b19840b0062b8 dwarf_loader: Support DW_AT_data_bit_offset |
| c692e8ac5ccbab99 dwarf_loader: Optimize a bit the reading of DW_AT_data_member_location |
| 65917b24942ce620 dwarf_loader: Fix typo |
| 77205a119c85e396 dwarf_loader: Introduce __attr_offset() to reuse call to dwarf_attr() |
| 8ec231f6b0c8aaef dwarf_loader: Support DW_FORM_implicit_const in attr_numeric() |
| 7453895e01edb535 btf_encoder: Improve ELF error reporting |
| 1bb49897dd2b65b0 bpf_encoder: Translate SHN_XINDEX in symbol's st_shndx values |
| 3f8aad340bf1a188 elf_symtab: Handle SHN_XINDEX index in elf_section_by_name() |
| e32b9800e650a6eb btf_encoder: Add extra checks for symbol names |
| 82749180b23d3c9c libbpf: allow to use packaged version |
| 452dbcf35f1a7bf9 btf_encoder: Improve error-handling around objcopy |
| cf381f9a3822d68b btf_encoder: Fix handling of restrict qualifier |
| b688e35970600c15 btf_encoder: fix skipping per-CPU variables at offset 0 |
| 8c009d6ce762dfc9 btf_encoder: fix BTF variable generation for kernel modules |
| b94e97e015a94e6b dwarves: Fix compilation on 32-bit architectures |
| 17df51c700248f02 btf_encoder: Detect kernel module ftrace addresses |
| 06ca639505fc56c6 btf_encoder: Use address size based on ELF's class |
| aff60970d16b909e btf_encoder: Factor filter_functions function |
| 1e6a3fed6e52d365 rpm: Fix changelog date |
| |
| v1.19: |
| |
| Fri Nov 20 2020 |
| |
| bf21da407593f104 fprintf: Make typedef__fprintf print anonymous enums |
| 9c4bdf9331bf06a7 fprintf: Align enumerators |
| 89cf28228a8ab55e fprintf: Add enumeration__max_entry_name_len() |
| 932b84eb45a9b8ba fprintf: Make typedef__fprintf print anonymous structs |
| 4a1479305b53933d pahole: Add heuristic to auto-add --btf_base for /sys/kernel/btf/ prefixed files |
| e1d01045828a5c4c btf: Fallback to raw BTF mode if the header magic matches |
| 24cea890abedb15b pahole: Force '-F btf' with --btf_base |
| cfad738682506ce4 libbtf: Assume its raw_btf if filename starts with "/sys/kernel/btf/" |
| 7293c7fceac36844 pahole: The --btf_base option receives a PATH, not a SIZE |
| b3dd4f3c3d5ea59e btf_encoder: Use better fallback message |
| d06048c53094d9d2 btf_encoder: Move btf_elf__verbose/btf_elf__force setup |
| 8156bec8aedb685b btf_encoder: Fix function generation |
| d0cd007339ee509e btf_encoder: Generate also .init functions |
| 25753e0396abea25 pfunct: Use load stealer to speed up --class |
| aa8fb8c091446467 man-pages: Add entry for -J/--btf_encode to pahole's man page |
| ace05ba9414c1fe4 btf: Add support for split BTF loading and encoding |
| 7290d08b4a6e5876 libbpf: Update libbpf submodule reference to latest master |
| 344f2483cfcd4952 libbtf: Improve variable naming and error reporting when writing out BTF |
| 94a7535939f92e91 btf_encoder: Fix array index type numbering |
| 9fa3a100f71e7a13 pfunct: Use a load stealer to stop as soon as a function is found |
| de18bd5fe3515358 pfunct: Try sole argument as a function name, just like pahole |
| bc1afd458562f21e pahole: Introduce --numeric_version for use in scripts and Makefiles |
| 784c3dfbd63d5bcf dwarves: Switch from a string based version to major/minor numbers |
| fc06ee1b6e9dc14a pahole: Check if the sole arg is a file, not considering it a type if so |
| f47b3a2df3622204 dwarf_loader: Fix partial unit warning |
| 5a22c2de79fb9edf btf_encoder: Change functions check due to broken dwarf |
| 7b1af3f4844b36b9 btf_encoder: Move find_all_percpu_vars in generic collect_symbols |
| 863e6f0f2cc08592 btf_encoder: Check var type after checking var addr. |
| 5e7ab5b9e064a3eb btf_loader: Handle union forward declaration properly |
| ec3f944102a71241 cmake: Make libbpf's Linux UAPI headers available to all binaries |
| 8cac1c54c83c346b btf_encoder: Ignore zero-sized ELF symbols |
| 040fd7f585c9b9fc btf_encoder: Support cross-compiled ELF binaries with different endianness |
| 29fce8dc8571c6af strings: use BTF's string APIs for strings management |
| 75f3520fedf6afdb strings: Rename strings.h to avoid clashing with /usr/include/strings.h |
| bba7151e0fd2fb3a dwarf_loader: increase the size of lookup hash map |
| 2e719cca66721284 btf_encoder: revamp how per-CPU variables are encoded |
| 0258a47ef99500db btf_encoder: Discard CUs after BTF encoding |
| 3c913e18b2702a9e btf_encoder: Fix emitting __ARRAY_SIZE_TYPE__ as index range type |
| 48efa92933e81d28 btf_encoder: Use libbpf APIs to encode BTF type info |
| 5d863aa7ce539e86 btf_loader: Use libbpf to load BTF |
| 0a9b89910e711951 dwarves: Expose and maintain active debug info loader operations |
| 7bc2dd07d51cb5ee btf_encoder: detect BTF encoding errors and exit |
| c35b7fa52cb8112a libbpf: Update to latest libbpf version |
| ef4f971a9cf745fc dwarf_loader: Conditionally define DW_AT_alignment |
| cc3f9dce3378280f pahole: Implement --packed |
| 08f49262f474370a man-pages: Fix 'coimbine' typo |
| |
| v1.18: |
| |
| Fri 02 Oct 2020 |
| |
| aee6808c478b760f btf_loader: Initialize function->lexblock.tags to fix segfault in pdwtags |
| c815d26689313d8d btf_encoder: Handle DW_TAG_variable that has DW_AT_specification |
| b8068e7373cc1592 pahole: Only try using a single file name as a type name if not encoding BTF or CTF |
| 8b1c63283194ebe1 libctf: Make can't get header message to appear only in verbose mode |
| 63e11400e80f6ac4 libbtf: Make can't get header message to appear only in verbose mode |
| fc2b317db0bdc1a9 dwarf_loader: Check for unsupported_tag return in last two missing places |
| 2b5f4895e8968e83 dwarf_loader: Warn user about unsupported TAGs |
| 010a71e181b450d7 dwarf_loader: Handle unsupported_tag return in die__process_class() |
| 3d616609ee0fd6df dwarf_loader: Add minimal handling of DW_TAG_subrange_type |
| 2e8cd6a435d96335 dwarf_loader: Ignore DW_TAG_variant_part for now to fix a segfault |
| e9e6285fd0d63ed0 dwarf_loader: Skip empty CUs |
| 1abc001417b579b8 btf_encoder: Introduce option '--btf_encode_force' |
| da4ad2f65028e321 btf_encoder: Allow disabling BTF var encoding. |
| f5847773d94d4875 fprintf: Support DW_TAG_string_type |
| 8b00a5cd677df778 dwarf_loader: Support DW_TAG_string_type |
| 0d9c3c9835659fb7 dwarves: Check if a member type wasn't found and avoid a NULL deref |
| 2ecc308518edfe05 dwarf_loader: Bail out at DW_TAG_imported_unit tags |
| 8c92fd298101171d dwarf_loader: Ignore entries in a DW_TAG_partial_unit, for now |
| 4cfd420f7ef13af4 README: Add instructions to do a cross build |
| 9e495f68c683574f dwarf_loader: Move vaddr to conditional where it is used |
| 69fce762074a5483 pahole: Use "%s" in a snprintf call |
| 22f93766cf02f4e0 pahole: Support multiple types for pretty printing |
| 78f2177d904902c6 pahole: Print the evaluated range= per class |
| 5c32b9d5c7ac8fff pahole: Count the total number of bytes read from stdin |
| e3e5a4626c94d9c5 pahole: Make sure the header is read only once |
| 208bcd9873442013 pahole: Introduce 'range=member' as a class argument for pretty printing |
| b9e406311990c2d5 pahole: Cache the type_enum lookups into struct enumerator |
| fda1825f0b9f1c9f dwarves: Introduce tag_cu_node, so that we can have the leaner tag_cu |
| 47d4dd4c8a2cf9fd pahole: Optimize --header processing by keeping the first successfull instance |
| fdfc64ec44f4ad53 pahole: Introduce --range |
| f63d3677e31d88a3 pahole: Support multiple enums in type_enum= |
| c50b6d37e99fddec pahole: Add infrastructure to have multiple concatenated type_enum |
| 671ea22ca18dd41f pahole: Move finding type_enum to a separate function |
| dd3c0e9eb0cbc77f dwarves: Move the common initialization of fields for 'struct type' |
| aa7ab3e8755a4c12 pahole: Allow for more compact enum filters by suppressing common prefix |
| 4ece15c37b028a80 dwarves: Find common enumerators prefix |
| d28bc97b5c12736b man-pages: Document pretty printing capabilities and provide examples |
| a345691f08f04f19 pahole: Make --header without -C to be equivalent to -C header-arg --count=1 |
| eba4ac6b2c1dcb11 pahole: Fallback to pretty printing using types in multiple CUs |
| 7c12b234ee30f6d2 dwarves: Introduce cus__find_type_by_name() |
| c6f3386e3364486d pahole: Make the type_instance constructor receive the looked up type + its CU |
| 30297256e1f27de5 pahole: Pass the header type_instance to tag__stdio_fprintf_value() |
| ead8084d3ffcda1f pahole: Store the CU in the type_instance struct |
| 2c886fff0af13510 pahole: Store the CU where type_enum was found |
| 526b116bfec71054 pahole: If pretty printing, don't discard CUs, keep them |
| a1b8fddb4dcd90d9 pahole: Show which classes were not processed and why |
| bc6a3cac50cdbdf6 pahole: Fixup the --class_name parsing wrt class args (type=, sizeof=, etc) |
| 363c37340521debe pahole: Remope pretty printed classes from the prototypes list |
| 9f675e7fdbf525fb cmake: Use -O0 for debug builds |
| 4e5b02beea24656d pahole: Don't stop when not finding the type_enum |
| 823739b56f2b5230 pahole: Convert class_names into a list of struct prototypes |
| 0a97d6c143fcc92a pahole: Factor out parsing class prototypes |
| 80af0fbbf3a3f1f6 dutils: Allow for having a priv area per strlist |
| 04b6547e7343410e pahole: Honour --hex_fmt when pretty printing |
| 266c0255984ddbe7 pahole: Support filters without 'filter=' |
| 6c683ce0e11d6c1c pahole: Allow for a 'type' boolean class arg meaning 'type=type' |
| 1c68f41bb87f7718 pahole: Allow for a 'sizeof' boolean class arg meaning 'sizeof=size' |
| b4b3fb0a3aeb9686 pahole: First look for ',' then '=' to allow for boolean args |
| 446b85f7276bda4c pahole: Add support for --size_bytes, accepts header variables |
| 0f10fa7529d4a9c7 pahole: Move reading the header to outside the --seek_bytes code |
| 9310b04854a8b709 pahole: Add support for referencing header variables when pretty printing |
| 611f5e8bd7eb760d pahole: Add == class member filtering |
| f2987224beb2b496 pahole: Do the 'type_enum' class argument validation as soon as we parse it |
| 02ca176c6290ff96 pahole: Do the 'type' class argument validation earlier |
| 172d743d9ce3f3a1 pahole: Do the 'sizeof' class argument validation earlier |
| 9a30c101d7c019ee pahole: As soon as a attribute is found, check if the type is a struct or class |
| a38ccf47237298dc pahole: Allow filter=expression as a class argument for pretty printing |
| 3c4ee1d91f5311ac pahole: Pretty print bitfields |
| 451d66ec02e94492 pahole: Pretty print unions too, cope with unnamed ones |
| 48c7704b49ffa6b1 pahole: Check if the type with arguments is present in the current CU |
| 472519ac2c49d340 pahole: Support nested structs |
| ae43029363ee2c53 dwarves_fprintf: Export the 'tabs' variable |
| ab714acec86841b7 pahole: Support zero sized base type arrays |
| ff7815a0f823a676 pahole: Add missing space before '}' in array__fprintf_base_type_value() |
| 5f2502274e1097db pahole: Support zero sized arrays in array__fprintf_base_type_value() |
| 3aadfbdd72e32016 pahole: Follow array type typedefs to find real sizeof(entry) |
| 7309039aa7510eec pahole: Make 'type' + 'type_enum' select a type to cast a variable sized record |
| 42b7a759f37e5d45 dutil: Add a strlwr() helper to lowercase a string, returning it |
| a5bb31b86fbe5362 pahole: Fix --skip for variable sized records |
| f4df384d77312867 pahole: Decouple reading ->sizeof_member from printing |
| 78cdde5cb7200555 pahole: Introduce 'type_enum' class argument |
| 163c330d3138e56f dwarves: Introduce cu__find_enumeration_by_name() |
| 20051b7157fce20c pahole: Add the 'type' modifier to make a struct member be used to find a cast type |
| 210dffe0d13d171b pahole: Iterate classes in the order specified in the command line: |
| 37a5c7c5ba0e1e7d strlist: Allow iterating a strlist in the original order |
| 6b5d938d99b2e457 pahole: Support multiple class/struct args |
| affbebf04bcaa1ec pahole: Make the class splitter take into account per-class parameters |
| 84387de4a5cf141d pahole: Allow specifying a struct member based sizeof() override |
| e0773683fa3edd61 dwarves: Allow setting a struct/class member as the source of sizeof() |
| f399db09a0d5b069 pahole: Allow simple parser for arguments to classes |
| 04d957ba3cdf1047 pahole: Add variable for class name when traversing list of classes |
| f3d9054ba8ff1df0 btf_encoder: Teach pahole to store percpu variables in vmlinux BTF. |
| fe284221448c950d pahole: Introduce --seek_bytes |
| 44af7c02b5d0a7f2 pahole: Implement --skip, just like dd |
| 5631fdcea1bbe2bc pahole: Introduce --count, just like dd's |
| 272bc75024b4f08c man-pages: Add information about stdin raw data pretty printing |
| 66835f9e190ce77e pahole: Add support for base type arrays |
| 1a67d6e70090953d pahole: Factor out base_type__fprintf_value() |
| 6fb98aa1209f02b5 pahole: Support char arrays when dumping from stdin |
| a231d00f8d08825e pahole: Print comma at the end of field name + field value |
| 1b2cdda38c0a6f5e dwarves: Introduce tag__is_array() |
| a83313fb22520d8d pahole: Pretty print base types in structs from stdin |
| cc65946e3068f7b6 dwarves: Adopt tag__is_base_type() from ctrace.c |
| d8079c6d373a5754 pahole: Hex dump a type from stdio when it isn't a tty |
| 38109ab45fe0307d spec: Fix date |
| |
| v1.17: |
| |
| Fri 13 Mar 2020 |
| |
| f14426e41046 docs: Add command line to generate tarball with a prefix |
| 0b2621d426ea dwarves: Avoid truncation when concatenating paths for dir entries |
| d7b351079583 dwarves: Don't use conf if its NULL in cus__load_running_kernel() |
| dde3eb086dd3 dwarves: Make list__for_all_tags() more robust |
| 081f3618a795 dwarves: Add -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 to build libbpf |
| e8f43a4963bf libbpf: Get latest libbpf |
| de84ae36c738 cmake: libebl was merged into libdw |
| 290b8fdbdab7 pahole: Improve --contains --recursive a bit |
| 3d5be866e55f pahole: Fill 'tab' with spaces earlier |
| 88674f039551 gobuffer: Do not crash on object without any public symbols |
| cb17f94f46a0 Add changes-v1.16 to the MANIFEST file |
| 32a19e044c93 pahole: Fix changelog date in dwarves.spec |
| 9b09f578b7d1 pahole: Initialize var to silence -Werror=maybe-uninitialized on gcc version 4.8.5 20150623 |
| 277c2b3d1b4a man-pages: Add section about --hex + -E to locate offsets deep into sub structs |
| 812c980b3f76 man-pages: Update some info, expand BTF info, add some EXAMPLES |
| e0942c7b031f pahole: Add support for finding pointers to void |
| 6a326e93088e pahole: Make --contains and --find_pointers_to to work with base types |
| 3c1a9a3329d9 pahole: Make --contains look for more than just unions, structs |
| ded5d36f9cf5 dwarves: Introduce cu__find_type_by_name |
| 88d99562e55c pahole: Add --structs to ask just for structs, counterpart of --unions |
| 0b444cf1118c pahole: Make --contains and --find_pointers_to honour --unions |
| a8a7e605bb45 pahole: Make --find_pointers_to consider unions |
| 0dc327e382f8 pahole: Consider unions when looking for classes containing some class |
| 3661f17d0b2c pahole: Introduce --unions to consider just unions |
| 2dd09c617101 pahole: union have no holes, fix --sizes formatter |
| 6c29cca8c28f pahole: Don't consider unions for options that only make sense for structs |
| dcba200367f7 pahole: When the sole argument passed isn't a file, take it as a class name |
| 1944de0c93e6 pahole: Use function__for_each_parameter() |
| 66e640508e4d dwarves: Make function__for_each_parameter receive 'cu' arg |
| 252b0fcc91cc pahole: Fix -m/--nr_methods - Number of functions operating on a type pointer |
| 202c8d5f5bd5 pahole: Do not require a class name to operate without a file name |
| 617f5ac2e6c9 dwarves: Move BTF loader ahead of the CTF one |
| cdd5e1399b9c btf loader: Support raw BTF as available in /sys/kernel/btf/vmlinux |
| |
| 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 |
| |
| 3ed9a67967cf fprintf: Avoid null dereference with NULL configs |
| 568dae4bd498 printf: Fixup printing "const" early with "const void" |
| 68f261d8dfff fprintf: Fix recursively printing named structs in --expand_types |
| 139a3b337381 ostra: Initial python3 conversion |
| 01276a7e8966 spec: Sync spec with fedora's |
| 9f1f0628b9ad rpm: Add missing devel headers |
| 989dc3f1ba0d cmake: Install missing devel headers |
| |
| v1.13 |
| |
| Tue Apr 16 2019 |
| |
| See changes-v1.13 for a more verbose description of the changes. |
| |
| 0fb727166a0e pfunct: Strip inlines in the code generated for --compile |
| 7b967744db7b emit: Emit the types for inline structs defined in pointer members |
| 30526e2848db fprintf: Print relative offsets for inner pointer structs |
| cfa377c238f8 emit: Do not emit a forward declararion to a nameless struct |
| cf459ca16fb2 fprintf: Pretty print struct members that are pointers to nameless structs |
| 09ed2e78befe pfunct: Emit definitions for pointers inside pointer to function args |
| e9fc2f647026 fullcircle: Check that we found the CFLAGS |
| 05921c47f557 emit: Handle typedefs that are a pointer to typedefs |
| 87af9839bf63 fullcircle: Try building from pfunct --compile and check types |
| c7fd9cc1fe97 pfunct: Fixup more return types |
| 56c50b8dbe9b emit: Make find_fwd_decl a bit more robust |
| 2bcb01fc2f9d fprintf: Handle single zero sized array member structs |
| 0987266cd9e2 fprintf: Deal with zero sized arrays in the midle of a union |
| 1101337a7450 fprintf: Deal with zero sized arrays in the middle of a struct |
| 13aa13eb0ca4 fprintf: Don't reuse 'type' in multiple scopes in the same function |
| c8fc6f5a7a46 core: Use unnatural alignment of struct embedded in another to infer __packed__ |
| 6f0f9a881589 fprintf: Fixup multi-dimensional zero sized arrays const handling |
| 9a4d71930467 fprintf: Allow suppressing the inferred __attribute__((__packed__)) |
| ec935ee422b0 fprintf: Allow suppressing the output of force paddings at the end of structs |
| 8471736f3c6c core: Cope with zero sized types when looking for natural alignment |
| 986a3b58a869 fprintf: Only add bitfield forced paddings when alignment info available |
| 49c27bdd6663 core: Allow the loaders to advertise features they have |
| dc6b9437a3a0 emit: Handle structs with DW_AT_alignment=1 meaning __packed__ |
| f78633cfb949 core: Infer __packed__ for union struct members |
| 75c52de9c6df core: Move packed_attribute_inferred from 'class' to 'type' class |
| 1bb4527220f4 fprintf: Fixup const pointers |
| dc3d44196103 core: Improve the natural alignment calculation |
| ac32e5e908ba codiff: Fix comparision of multi-cu against single-cu files |
| f2641ce169d6 core: Take arrays into account when inferring if a struct is packed |
| 85c99369631a fprintf: Do not add explicit padding when struct has __aligned__ attr |
| b5e8fab596d3 emit: Cover void ** as a function parameter |
| 28a3bc7addad fprintf: Support packed enums |
| f77a442f09e3 fprintf: Do not print the __aligned__ attribute if asked |
| ea583dac52f0 fprintf: Print zero sized flat arrays as [], not [0] |
| f909f13dd724 fprintf: Fixup handling of unnamed bitfields |
| 3247a777dcfc core: Infer if a struct is packed by the offsets/natural alignments |
| 13e5b9fc00ee fprintf: Add unnamed bitfield padding at the end to rebuild original type |
| ccd67bdb205b fprintf: Print "const" for class members more early, in type__fprintf() |
| b42d77b0bbda fprintf: Print __attribute__((__aligned__(N))) for structs/classes |
| 1c9c1d6bbd45 dwarf_loader: Store DW_AT_alignment if available in DW_TAG_{structure,union,class}_type |
| 41c55858daf4 codiff: Add --quiet option |
| a104eb1ea11d fprintf: Notice explicit bitfield alignment modifications |
| 75f32a24c7c7 codiff: Improve the comparision of anonymous struct members |
| 6b1e43f2c1ac codiff: When comparing against a file with just one CU don't bother finding by name |
| 15a754f224f7 core: Add nr_entries member to 'struct cus' |
| 99750f244cb8 pfunct: Generate a valid return type for the --compile bodies |
| 881aabd6fc22 reorganize: Introduce class__for_each_member_from_safe() |
| 1b2e3389f304 reorganize: Introduce class__for_each_member_reverse() |
| 10fef2916dce reorganize: Introduce class__for_each_member_continue() |
| e7a56ee8cc69 reorganize: Introduce class__for_each_member_from() |
| 9a79bb6ced23 tag: Introduce tag__is_pointer_to() |
| 45ad54594442 tag: Introduce tag__is_pointer() |
| 89ce57a02e3a pdwtags: Find holes in structs |
| ce6f393bc9ea fprintf: Fixup the printing of const parameters |
| 7aec7dd6c29c pfunct: Do not reconstruct external functions |
| 163b873f81c8 pfunct: Do not reconstruct inline expansions of functions |
| ea83b780eca0 pfunct: Handle unnamed struct typedefs |
| e7ebc05d12e1 emit: Unwind the definitions for typedefs in type__emit_definitions() |
| 093135b0bfd5 pfunct: Do not emit a type multiple times |
| 3ce2c5216612 pfunct: Ask for generating compilable output that generates DWARF for types |
| e7a786540d83 pfunct: Make --expand_types/-b without -f expand types for all functions |
| 9b2eadf97b44 pfunct: Follow const, restrict, volatile in --expand_types |
| f3f86f2f89b0 pfunct: Reconstruct function return types for --expand_types |
| a7d9c58cb81a fprintf: Add missing closing parens to the align attribute |
| d83d9f578fa0 dwarf_loader: Handle DW_TAG_label in inline expansions |
| 73e545b144b4 dwarf_loader: Handle unsupported_tag in die__process_inline_expansion |
| fe590758cb3f class__find_holes: Zero out bit_hole/hole on member |
| 863c2af6e9d7 reorganize: Disable the bitfield coalescing/moving steps |
| b95961db697a fprintf: Show statistics about holes due to forced alignments |
| ec772f21f681 fprintf: Show the number of forced alignments in a class |
| 52d1c75ea437 btfdiff: Use --suppress_aligned_attribute with -F dwarf |
| 6cd6a6bd8787 dwarves_fprintf: Allow suppressing the __attribute__((__aligned__(N)) |
| f31ea292e3cb dwarf_loader: Store the DW_AT_alignment if available |
| c002873c4479 dwarves_fprintf: Move invariant printing of ; to outside if block |
| 8ce85a1ad7f0 reorganize: Use class__find_holes() to recalculate holes |
| 5d1c4029bd45 dwarves: Fix classification of byte/bit hole for aligned bitfield |
| 78c110a7ea24 dwarves: Revert semantics of member bit/byte hole |
| b56fed297e5f dwarves_fprintf: Count bitfield member sizes separately |
| c0fdc5e685e9 dwarf_loader: Use DWARF recommended uniform bit offset scheme |
| 5104d1bef384 loaders: Record CU's endianness in dwarf/btf/ctf loaders |
| 975757bc8867 dwarves: Use bit sizes and bit/byte hole info in __class__fprintf |
| 1838d3d7623e dwarves: Revamp bit/byte holes detection logic |
| 03d9b6ebcac7 dwarf_loader: Fix bitfield fixup logic for DWARF |
| 4abc59553918 btf_loader: Adjust negative bitfield offsets early on |
| 41cf0e3cba0c dwarf_loader: Don't recode enums and use real enum size in calculations |
| 55c96aaed8ce loaders: Strip away volatile/const/restrict when fixing bitfields |
| 7005757fd573 libbpf: Sync in latest libbpf sources |
| 69970fc77ec5 pahole: Filter out unions when looking for packable structs |
| fa963e1a8698 dwarves_fprintf: Print the bit_offset for inline enum bitfield class members |
| bb8350acf52f dwarves: Switch type_id_t from uint16_t to uint32_t |
| 5375d06faf26 dwarves: Introduce type_id_t for use with the type IDs |
| f601f6725890 libctf: The type_ids returned are uint32_t fixup where it was uint16_t |
| c9b2ef034f89 dwarf: Add cu__add_tag_with_id() to stop using id == -1 to allocate id |
| 762e7b58f447 dwarves: Change ptr_table__add() signature to allow for uint32_t returns |
| 079e6890b788 dwarf_loader: Mark tag__recode_dwarf_bitfield() static |
| 3526ebebd3ab pahole: Use 32-bit integers for type ID iterations within CU |
| 3bd8da5202e4 libbpf: update reference to bring in btf_dedup fixes |
| a9afcc65fc8f btf_encoder: Don't special case packed enums |
| 8f4f280163b7 btf_loader: Simplify fixup code by relying on BTF data more |
| be5173b4df0f dwarves: Fixup sizeof(long double) in bits in base_type_name_to_size table |
| 5081ed507095 dwarves: Add _Float128 base_type |
| d52c9f9b9455 dwarf_loader: Fixup bitfield entry with same number of bits as its base_type |
| 6586e423d4fa btf_loader: Fix bitfield fixup code |
| 7daa4300d230 pahole: Complete list of base type names |
| 6bcf0bd70305 btfdiff: Support specifying custom pahole location |
| 88028b5d0c32 btfdiff: Use --show_private_classes with DWARF |
| e6c59bd11d3d libbpf: Build as PIC and statically link into libdwarves |
| cf4f3e282d64 cmake: Bump miminum required version to use OBJECT feature |
| 5148be53dc65 btfdiff: Rename tmp files to contain the format used |
| dd3a7d3ab3e8 btf_encoder: run BTF deduplication before writing out to ELF |
| 54106025cd14 libbtf: Fixup temp filename to .btf, not .btfe |
| e6dfd10bcbf3 libbpf: Build as shared lib |
| c234b6ca6e55 libbpf: Pull latest libbpf |
| fe4e1f799c55 btf_elf: Rename btf_elf__free() to btf_elf__delete() |
| 6780c4334d55 btf: Rename 'struct btf' to 'struct btf_elf' |
| ca86e9416b8b pahole: use btf.h directly from libbpf |
| 21507cd3e97b pahole: add libbpf as submodule under lib/bpf |
| c25ada500ddc pahole: Add build dir, config.h to .gitignore |
| a58c746c4c7e Fixup copyright notices for BTF files authored by Facebook engineers |
| e714d2eaa150 Adopt SPDX-License-Identifier |
| c86960dce55d btf_loader: We can set class_member->type_offset earlier |
| 278b64c3eee0 btfdiff: Use diff's -p option to show the struct/union |
| 1182664d6aa6 dwarves_fprintf: Handle negative bit_offsets in packed structs with bitfields |
| b0cf845e02c6 dwarves: Change type of bitfield_offset from uint8_t to int8_t |
| 06e364bc62e7 btfdiff: Add utility to compare pahole output produced from DWARF and BTF |
| b79db4cab41c dwarves: add __int128 types in base_type_name_to_size |
| de3459cc0ebe btf_loader: BTF encodes the size of enums as bytes not bits |
| 693347f8def7 btf_encoder: Fix void handling in FUNC_PROTO. |
| 2d0b70664f3e dwarves_fprintf: Separate basic type stats into separate type__fprintf() method |
| 18f5910f96e0 dwarves: Add type to tag helper |
| f2092f56586a btf: recognize BTF_KIND_FUNC in btf_loader |
| 11766614096c btf: Fix kind_flag usage in btf_loader |
| 68b93e6858ae dutil: Add missing string.h header include |
| 851ef335e328 dutil: Drop 'noreturn' attribute for ____ilog2_NaN() |
| ab0cb33e54e8 btf_loader: Fixup class_member->bit_offset for !big_endian files |
| b24718fe27d3 dwarves: Fix documentation for class_memer->bitfield_size |
| 3ffe5ba93b63 pahole: Do not apply 'struct class' filters to 'struct type' |
| da18bb340bee dwarves: Check if the tag is a 'struct class' in class__find_holes() |
| 2a82d593be81 btf: Add kind_flag support for btf_loader |
| 472256d3c57b btf_loader: Introduce a loader for the BTF format |
| 93d6d0016523 dwarves: No need to print the "signed ", the name has it already |
| 0a9bac9a3e8e dwarves: Relookup when searching for signed base types |
| a2cdc6c2a0a3 dutil: Adopt strstart() from the linux perf tools sources |
| 3aa3fd506e6c btf: add func_proto support |
| 8630ce404287 btf: fix struct/union/fwd types with kind_flag |
| 65bd17abc72c btf: Allow multiple cu's in dwarf->btf conversion |
| d843945ba514 pahole: Search for unions as well with '-C' |
| da632a36862c dwarves: Introduce {cu,cus}__find_struct_or_union_by_name() methods |
| 31664d60ad41 pahole: Show tagged enums as well when no class is specified |
| b18354f64cc2 btf: Generate correct struct bitfield member types |
| 70ef8c7f07ff dwarves_fprintf: Set conf.cachelinep in union__fprintf() too |
| bfdea37668c6 dwarves_fprintf: Print the scope of variables |
| 465110ec99d3 dwarves: Add the DWARF location to struct variable |
| c65f2cf4361e dwarves: Rename variable->location to ->scope |
| 0d2511fd1d8e btf: Fix bitfield encoding |
| 92417082aad3 MANIFEST: Add missing COPYING file |
| eb6bd05766f5 dwarf_loader: Process DW_AT_count in DW_TAG_subrange_type |
| |
| v1.12 |
| |
| Thu Aug 16 2018 |
| |
| 1ca2e351dfa1 README.btf: Add section on validating the .BTF section via the kernel |
| 9eda5e8163ce README.btf: No need to use 'llvm.opts = -mattr=dwarfris' with elfutils >= 0.173 |
| 7818af53f64a dwarves: Add a README.btf file with steps to test the BTF encoder |
| f727c22191d0 dwarf_loader: Initial support for DW_TAG_partial_unit |
| e975ff247aa8 dwarves_fprintf: Print cacheline boundaries in multiple union members |
| 68645f7facc2 btf: Add BTF support |
| 81466af0d4f8 pahole: Show the file where a struct was used |
| 2dd87be78bb2 dwarves_fprintf: Show offsets at union members |
| 66cf3983e1ac README.DEBUG: Add an extra step to make the instructions cut'n'exec |
| 2a092d61453c dwarves: Fix cus__load_files() success return value |
| 02a456f5f54c pahole: Search and use running kernel vmlinux when no file is passed |
| 5f057919a0c0 man-pages: Add entry for --hex |
| |
| v1.11 |
| |
| Wed Jun 2017 |
| |
| 5a57eb074170 man-pages: Update URL to the dwarves paper |
| b52386d041fa dwarves_fprintf: Find holes when expanding types |
| 103e89bb257d dwarves_fprintf: Find holes on structs embedded in other structs |
| ab97c07a7ebe dwarves_fprintf: Fixup cacheline boundary printing on expanded structs |
| 046ad67af383 dwarves_fprintf: Shorten class__fprintf() sig |
| 44130bf70e1c dwarves: Update e-mail address |
| 327757975b94 dwarf_loader: Add URL for template tags description |
| f4d5e21fd1b2 dwarf_loader: Tidy up template tags usage |
| e12bf9999944 dwarf_loader: Do not hash unsupported tags |
| 3afcfbec9e08 dwarf_loader: Add DW_TAG_GNU_formal_parameter_pack stub in process_function |
| 55d9b20dbaf6 dwarf_loader: Ignore DW_TAG_dwarf_procedure when processing functions |
| 45618c7ec122 dwarf_loader: Initial support for DW_TAG_unspecified_type |
| 658a238b9890 dwarf_loader: Stop emitting warnings about DW_TAG_call_site |
| 0fbb39291d59 dwarf_loader: Add support for DW_TAG_restrict_type |
| 9df42c68265d dwarves: Initial support for rvalue_reference_type |
| 8af5ccd86d21 dwarves: Use cus__fprintf_load_files_err() in the remaining tools |
| 10515a7c4db7 dwarves: Introduce cus__fprintf_load_files_err() |
| 0e6463635082 pahole: Show more informative message when errno is properly set on error |
| 2566cc2c8715 pdwtags: Show proper error messages for files it can't handle |
| 9f3f67e78679 dwarves: Fix cus__load_files() error return |
| ae3a2720c3d3 dutil: Add ____ilog2_NaN declaration to silence compiler warning |
| 0b81b5ad4743 Update version in CMakeLists.txt |
| 79536f4f9587 cmake: Use INTERFACE_LINK_LIBRARIES |
| 1decb1bc4a41 dwarf_loader: Check cu__find_type_by_ref result |
| 956343d05a41 Add instructions on how to build with debug info |
| e71353c3fa0a dwarf_loader: Ignore DW_TAG_dwarf_procedure |
| 189695907242 dwarves_fprintf: Add the missing GNU_ suffix to DWARF_TAG_ created by the GNU project |
| d973b1d5daf0 dwarf_fprintf: Handle DW_TAG_GNU_call_site{_parameter} |
| c23eab4b1253 dwarf_loader: Print unknown tags as an hex number |
| 943a0de0679a dwarves_fprintf: DW_TAG_mutable_type doesn't exist. |
| a8e562a15767 dwarf_loader: Use obstack_zalloc when allocating tag |
| fd3838ae9aa3 dwarves: Stop using 'self' |
| 5ecf1aab9e10 dwarf_loader: Support DW_FORM_data{4,8} for reading class member offsets |
| c4ccdd5ae63b dwarves_reorganize: Fix member type fixup |
| e31fda3063e3 dwarves_reorganize: Fixup calculation of bytes needed for bitfield |
| 1e461ec7e0e8 dwarves_fprintf: Fix printf types on 64bit linux |
| 222f0067a9c3 dwarves_fprintf: Don't ignore virtual data members |
| e512e3f9b36b dwarves: Update git url |
| 8c6378fd8834 dwarves: Support static class data members |
| a54515fa6ee4 dwarves: Stop using 'self' |
| 6035b0d91f19 rpm: Add missing BuildRequires: zlib-devel |
| be7b691756ff dwarf_loader: Don't stop processing after finding unsupported tag |
| |
| v1.10 |
| |
| Wed May 30 2012 |
| |
| . Initial DWARF4 support, by Tom Tromey |
| |
| . Add stubs for some new GNU Tags |
| |
| . Fix build on older systems |
| |
| . Fix a crash when pahole is called with -R -S, from Tal Kelrich |
| |
| v1.9: |
| |
| Ignore DW_TAG_template_{type,value}_parameter, fixing a bug reported at: |
| |
| https://bugzilla.redhat.com/show_bug.cgi?id=654471 |
| |
| More work is needed to properly support these tags. |
| |
| ----------------------------------------- |
| |
| After a long time without a new release because I was trying to get the CTF |
| support completed, and due to the very strong gravity force in the Linux kernel |
| perf tools, here it is 1.8, with lots of performance improvements, bug fixes |
| and changes to better use these tools in scripts. |
| |
| For full details please take a look at the git changesets, repo available at: |
| |
| http://git.kernel.org/cgit/devel/pahole/pahole.git |
| |
| - Arnaldo |
| |
| pahole: |
| |
| . Allow list of structs to be passed to pahole. |
| |
| E.g.: 'pahole -C str_node,strings' |
| |
| Suggested by Zack Weinberg <zweinberg@mozilla.com>, for scripting. |
| |
| . Introduce --hex to print offsets and sizes in hexadecimal |
| |
| codiff: |
| |
| . Improve detection of removal and addition of members in structs |
| |
| . Detect changes in padding and the number of holes/bit_holes |
| |
| pfunct: |
| |
| . --no_parm_names |
| |
| Because CTF doesn't encodes the names of the parameters and I want to |
| test the upcoming CTF function section code in ctftwdiff. |
| |
| . pfunct --addr |
| |
| Using an rbtree to find in which function the given addr is. |
| |
| libdwarves: |
| |
| . Greatly reduce the data structures footprint and lookup by recoding |
| the IDs as short integers, that was done to facilitate support for CTF |
| but benefited the core libraries greatly. |
| |
| . Handle GCC support for vector instructions |
| |
| So now it recognizes, as printed by pdwtags: |
| |
| 908 typedef int __m64 __attribute__ ((__vector_size__ (8))); size: 8 |
| 909 int array __attribute__ ((__vector_size__ (8))); size: 8 |
| 910 int array __attribute__ ((__vector_size__ (4))); size: 4 |
| 911 short int array __attribute__ ((__vector_size__ (2))); size: 2 |
| 912 char array __attribute__ ((__vector_size__ (1))); size: 1 |
| |
| . Destructors were added so that no leaks are left if this library is to |
| be used in other tools that don't end the program when done using this lib. |
| |
| . Allow the tools to pass a callback that is used after loading each object |
| file (CU/Compile Unit), so that we can more quickly find tags and stop |
| the processing sooner, or at least delete the CU if it doesn't have anything |
| needed by the tool. This _greatly_ speeded up most of the tools. |
| |
| . Tools now can pass a debug format "path", specifying the order it wants to |
| try, so that if a file have both DWARF and CTF, specifying 'ctf,dwarf' will |
| use the CTF info. |
| |
| . Now the formatting routines are in a separate file, dwarves_fprintf.c. This |
| was done for organizational purposes but also to pave the way for multiple |
| formatting backends, so that we can print, for instance, in CSV the structs, |
| for easier scripting like done by several folks out there. |
| |
| . Handle volatile typedef bitfields, like: |
| |
| struct _GClosure { |
| volatile guint ref_count:15; /* 0:17 4 */ |
| volatile guint meta_marshal:1; /* 0:16 4 */ |
| volatile guint n_guards:1; /* 0:15 4 */ |
| |
| . Load java 'interfaces' as a struct/class. |
| |
| . Fix buffer expansion bug, detected thanks to boost that provided things like: |
| |
| virtual int undefine(class |
| grammar_helper<boost::spirit::grammar<boost::detail::graph::dot_skipper, |
| boost::spirit::parser_context<boost::spirit::nil, class |
| grammar<boost::detail::graph::dot_skipper, |
| boost::spirit::parser_context<boost::spirit::nil_t> > *); /* |
| linkage=_ZN5boost6spirit4impl14grammar_helperINS0_7grammarINS_6detail5graph11dot_skipperENS0_14parser_contextINS0_5nil_tEEEEES6_NS0_7scannerINS0_10multi_passISt16istream_i |
| */ |
| |
| . Allow optional addr information loading, speeding up some apps that don't |
| use such addresses (or in modes where addrs aren't used) such as pahole. |
| |
| . Use a obstacks, speeding up apps as measured with the perf tools. |
| |
| . Support zero sized arrays in the middle of a struct. |
| |
| . Fix padding calculation in the reorganize routines. |
| |
| . Fix bitfield demotion in the reorganize routines. |
| |
| . Support "using" pointing to data members (C++). |
| |
| . Properly support pointers to const, reported by Jan Engelhardt <[email protected]>: |
| |
| . Support more compact DW_AT_data_member_location form, pointed out by Mark |
| Wielaard <[email protected]> and reported by Mike Snitzer <[email protected]> |
| |
| Experimental CTF support: |
| |
| libdwarves was reorganized so that it can support multiple debugging formats, |
| with the first one being supported being the Compact C Type Format that comes |
| from the OpenSolaris world. |
| |
| David S. Miller contributed an initial CTF decoder and from there I wrote an |
| encoder. |
| |
| To test this a regression testing harness (regtest in the sources) that will |
| take files with DWARF info and from there encode its contents in CTF in another |
| ELF section in the same file (.SUN_ctf). Then it will decode both the DWARF |
| and CTF sections and compare the results for pahole running with some new |
| flags that cope with some subtleties in the way CTF encodes things. |
| |
| --flat_arrays |
| |
| We have just one dimension in CTF, with the total number of entries, |
| in DWARF we can express this, but not in CTF: |
| |
| __u8 addr[0][6]; /* 4 0 */ |
| |
| So --flat_arrays will show it as: |
| |
| __u8 addr[0]; /* 4 0 */ |
| |
| --show_private_classes |
| --fixup_silly_bitfields |
| |
| To cope with things like 'char foo:8' that since CTF has only the |
| number of bits, can't be expressed as we don't know if it is a |
| bitfield or just a char without the ':8' suffix. |
| |
| --first_obj_only |
| |
| Look only at the first object file in a file with multiple object |
| files, like vmlinux. This is because the CTF support is not complete yet, |
| needing the merging of types in multiple object files to be done. |
| |
| --classes_as_structs |
| |
| CTF has only a type for structs, not for classes like DWARF (DW_TAG_class_type |
| is not present in CTF), so print them all as 'struct'. |
| |
| Running with the above limitations produce just a few mismatches, related to |
| packed structs and enumerations and bitfields. |