aboutsummaryrefslogtreecommitdiffstats
path: root/dwarf_loader.c
AgeCommit message (Expand)AuthorFilesLines
2024-04-15core/dwarf_loader: Add functions to set state of CU processingArnaldo Carvalho de Melo1-3/+5
2024-04-15dwarf_loader: Add the cu to the cus list early, remove on LSK_DELETEArnaldo Carvalho de Melo1-5/+11
2024-04-15dwarf_loader: Remove unused 'thr_data' arg from dwarf_cus__create_and_process...Arnaldo Carvalho de Melo1-5/+3
2024-04-15dwarf_loader: Create the cu/dcu pair in dwarf_cus__nextcu()Arnaldo Carvalho de Melo1-4/+15
2024-04-15dwarf_loader: Introduce dwarf_cus__process_cu()Arnaldo Carvalho de Melo1-7/+11
2024-04-15dwarf_loader: Separate creating the cu/dcu pair from processing itArnaldo Carvalho de Melo1-5/+19
2024-02-21dwarf_loader: Print the line number in addition to the function when not find...Arnaldo Carvalho de Melo1-5/+5
2023-04-13dwarf_loader: DW_TAG_subroutine_type may have a DW_AT_byte_sizeArnaldo Carvalho de Melo1-0/+1
2023-04-13dwarf_loader: Add support for DW_TAG_constantArnaldo Carvalho de Melo1-0/+25
2023-03-02dwarf_loader: Fix for BTF id drift caused by adding unspecified typesEduard Zingerman1-6/+19
2023-02-28dwarf_loader: Only mark parameter as using an unexpected register when it doesAlan Maguire1-4/+2
2023-02-28dwarf_loader: Fix parameter location retrieval for location listsAlan Maguire1-2/+12
2023-02-28dwarf_loader: Fix detection of struct parametersAlan Maguire1-6/+4
2023-02-18dwarf_loader: Mark functions that do not use expected registers for paramsAlan Maguire1-5/+104
2023-02-14dwarf_loader: Fix sorting of Rust structsArnaldo Carvalho de Melo1-1/+1
2023-02-10core: Check that we're adding DW_TAG_member sorted by byte offsetArnaldo Carvalho de Melo1-0/+42
2023-02-09dwarf_loader: Help spotting functions with optimized-out parametersAlan Maguire1-7/+123
2023-01-24dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernelSedat Dilek1-3/+3
2023-01-24dwarf_loader: DW_TAG_inlined_subroutine needs recoding by DW_AT_abstract_originArnaldo Carvalho de Melo1-2/+8
2022-10-13emit: Emit typedefs for atomic_ prefixed base typesArnaldo Carvalho de Melo1-0/+1
2022-10-10core: Record if a CU has a DW_TAG_unspecified_typeArnaldo Carvalho de Melo1-1/+6
2022-09-29dwarf_loader: Support DW_TAG_label outside DW_TAG_lexblockArnaldo Carvalho de Melo1-2/+14
2022-09-27dwarves: support DW_TAG_atomic_typeDavid Lamparter1-1/+3
2022-08-10dwarf_loader: Encode char type as signedYonghong Song1-1/+1
2022-07-29dwarf_loader: Fix elfutils dwfl_getmodules() error checkingArnaldo Carvalho de Melo1-1/+1
2022-07-12btf: Support BTF_KIND_ENUM64Yonghong Song1-0/+12
2022-03-17pahole: Avoid segfault when parsing bogus fileKornilios Kourtis1-1/+3
2022-01-28dwarf_loader: Prepare and pass per-thread data to worker threadsKui-Feng Lee1-13/+46
2022-01-28dwarf_loader: Receive per-thread data on worker threadsKui-Feng Lee1-2/+2
2021-11-23dwarf_loader: Support btf_type_tag attributeYonghong Song1-3/+133
2021-11-23dutil: Move DW_TAG_LLVM_annotation definition to dutil.hYonghong Song1-4/+0
2021-11-12dwarf_loader: Warn about DW_TAG_skeleton_unit and give a workaroundArnaldo Carvalho de Melo1-1/+12
2021-11-12dwarf_loader: Print the hexadecimal value for unexpected tags in die__process()Arnaldo Carvalho de Melo1-2/+2
2021-11-11dwarf_loader: support typedef DW_TAG_LLVM_annotationYonghong Song1-5/+2
2021-10-27btf: Rename btf_tag to btf_decl_tagYonghong Song1-3/+3
2021-10-26dwarf_loader: Fix heap overflow when accessing variable specificationIlya Leoshkevich1-5/+10
2021-10-14dwarves: Introduce conf_load->thread_exit() callbackArnaldo Carvalho de Melo1-0/+3
2021-09-27dwarf_loader: Parse DWARF tag DW_TAG_LLVM_annotationYonghong Song1-6/+79
2021-08-20dwarf_loader: cus__load_debug_types() doesn't use its 'cus' arg, remove itArnaldo Carvalho de Melo1-9/+4
2021-08-20dwarf_loader: Rename finalize_cu_immediately() to cus__finalize() to follow c...Arnaldo Carvalho de Melo1-5/+3
2021-08-20dwarf_loader: Remove unused 'dcu' argument from finalize_cu_immediately()Arnaldo Carvalho de Melo1-3/+2
2021-08-20dwarf_loader: Remove unused 'dcus' argument from cu__finalize()Arnaldo Carvalho de Melo1-3/+3
2021-08-20dwarf_loader: Remove unused 'cus' argument from finalize_cu()Arnaldo Carvalho de Melo1-4/+3
2021-08-20dwarf_loader: Fix signed/unsigned comparision in tag__recode_dwarf_bitfield()Arnaldo Carvalho de Melo1-1/+1
2021-08-20dwarf_loader: Make hash table size default to 12, faster than 15Arnaldo Carvalho de Melo1-1/+1
2021-08-20core: Allow sizing the loader hash tableArnaldo Carvalho de Melo1-0/+15
2021-08-20dwarf_loader: Use a per-CU frontend cache for the latest lookup resultArnaldo Carvalho de Melo1-2/+16
2021-08-20core: Use obstacks: take 2Arnaldo Carvalho de Melo1-28/+27
2021-08-20dwarf_loader: Add comment on why we can't ignore lexblocksArnaldo Carvalho de Melo1-0/+3
2021-08-20core: Allow ignoring DW_TAG_labelArnaldo Carvalho de Melo1-0/+4
2021-08-20core: Allow ignoring DW_TAG_inline_expansionArnaldo Carvalho de Melo1-0/+2
2021-08-20dwarf_loader: Allow asking not to read the DW_AT_alignment attributeArnaldo Carvalho de Melo1-2/+7
2021-08-12dwarf_loader: Do not look for non-C DWARF attributes in C CUsArnaldo Carvalho de Melo1-3/+6
2021-08-12dwarf_loader: Add a lock around dwarf_decl_file() and dwarf_decl_line() callsArnaldo Carvalho de Melo1-0/+6
2021-08-12dwarf_loader: Defer freeing libdw Dwfl handlerArnaldo Carvalho de Melo1-1/+17
2021-08-12dwarf_loader: Parallel DWARF loadingArnaldo Carvalho de Melo1-1/+79
2021-08-12dwarf_loader: Introduce 'dwarf_cus' to group all the DWARF specific per-cus s...Arnaldo Carvalho de Melo1-24/+39
2021-08-12dwarf_loader: Factor common bits for creating and processing CUArnaldo Carvalho de Melo1-25/+36
2021-08-12core: namespace__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-1/+1
2021-08-12core: {tag,function,lexblock}__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-7/+7
2021-08-12core: ftype__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-1/+1
2021-08-12core: enumeration__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-1/+1
2021-08-12core: type__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-1/+1
2021-08-12core: class__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-1/+1
2021-08-12core: class_member__delete() doesn't need a 'cu' argArnaldo Carvalho de Melo1-1/+1
2021-08-12core: Use namespace->name in class__clone()Arnaldo Carvalho de Melo1-1/+0
2021-08-12dwarf_loader: Make attr_suffix() handle kabi_prefixArnaldo Carvalho de Melo1-3/+10
2021-08-12dwarf_loader: Pass conf_load to functions calling attr_string()Arnaldo Carvalho de Melo1-107/+105
2021-08-12dwarf_loader: Remove unused strings variable and debug_fmt_ops->{init,exit}()Arnaldo Carvalho de Melo1-19/+0
2021-08-12core: Remove unused debug_fmt_ops->dwarf__strings_ptr()Arnaldo Carvalho de Melo1-7/+0
2021-08-12dwarf_loader: No need to strdup() what dwarf_formstring() returnsArnaldo Carvalho de Melo1-17/+10
2021-08-12core: Make variable->name a real stringArnaldo Carvalho de Melo1-1/+1
2021-08-12core: Make label->name a real stringArnaldo Carvalho de Melo1-1/+1
2021-08-12core: Make enumerator->name a real stringArnaldo Carvalho de Melo1-1/+1
2021-08-12core: Make namespace->name a real stringArnaldo Carvalho de Melo1-4/+3
2021-08-12core: Make class_member->name a real stringArnaldo Carvalho de Melo1-1/+1
2021-08-12core: Make parameter->name a real stringArnaldo Carvalho de Melo1-1/+1
2021-08-12core: Make base_type->name a real stringArnaldo Carvalho de Melo1-3/+2
2021-07-28core: Convert cu__find_base_type_by_sname_and_size to search for a stringArnaldo Carvalho de Melo1-1/+1
2021-07-28core: Convert cu__find_enumeration_by_sname_and_size to search for a stringArnaldo Carvalho de Melo1-1/+1
2021-07-28dwarf_loader: Rename strings_t 'name' to 'sname' to clarify usageArnaldo Carvalho de Melo1-6/+7
2021-07-28core: Make function->name a real stringArnaldo Carvalho de Melo1-1/+1
2021-07-28core: Make function->linkage_name a real stringArnaldo Carvalho de Melo1-1/+1
2021-07-28dwarf_loader: Make dwarf_tag->decl_file a real stringArnaldo Carvalho de Melo1-11/+15
2021-06-15dwarf_loader: Separate non-LTO per CU processing + BTF encoding partArnaldo Carvalho de Melo1-46/+56
2021-06-13headers: Rebame __unused to __maybe_unused to avoid clashes with system headersArnaldo Carvalho de Melo1-5/+5
2021-05-28dwarf_loader: Add define for DW_OP_addrxArnaldo Carvalho de Melo1-0/+4
2021-05-27dwarf_loader: Use zfree() instead of ad-hoc implementationArnaldo Carvalho de Melo1-5/+4
2021-05-27dwarf_loader: Call dwarf_cu__delete() when aborting the loadArnaldo Carvalho de Melo1-0/+1
2021-05-27dwarf_loader: Delete the allocated CU when abortingArnaldo Carvalho de Melo1-0/+1
2021-05-27dwarf_loader: Make all ABORT returns go thru a single exit labelArnaldo Carvalho de Melo1-7/+10
2021-05-27dwarf_loader: Use zalloc() to allocate dwarf_cuArnaldo Carvalho de Melo1-1/+1
2021-05-27dwarf_loader: Make dwarf_cu__delete() accept NULL, just like free()Arnaldo Carvalho de Melo1-0/+3
2021-05-27dwarf_loader: Check if we have a CU after the loop in cus__merge_and_process_...Arnaldo Carvalho de Melo1-0/+3
2021-05-27dwarf_loader: Check tag__recode_dwarf_bitfield() return, may be NULLArnaldo Carvalho de Melo1-11/+23
2021-05-17dwarves: Stop using obstacksArnaldo Carvalho de Melo1-31/+11
2021-04-06dwarf_loader: Handle DWARF5 DW_OP_addrx properlyYonghong Song1-1/+13
2021-04-03dwarf_loader: Handle subprogram ret type with abstract_origin properlyYonghong Song1-1/+43
2021-04-02dwarf_loader: Check .notes section for LTO build infoYonghong Song1-2/+31
2021-04-02dwarf_loader: Check .debug_abbrev for cross-CU referencesYonghong Song1-19/+24
2021-03-30dwarf_loader: Permit merging all DWARF CU's for clang LTO built binaryYonghong Song1-0/+120
2021-03-30dwarf_loader: Factor out common code to initialize a cuYonghong Song1-25/+20
2021-03-30dwarf_loader: Permit a flexible HASHTAGS__BITSYonghong Song1-17/+58
2021-03-11btf: Add support for the floating-point typesIlya Leoshkevich1-0/+11
2021-02-18Avoid warning when building with NDEBUGIan Rogers1-1/+2
2021-02-02dwarf_loader: Support DWARF_TAG_call_site{_parameter} also in die__process_in...Arnaldo Carvalho de Melo1-0/+2
2021-02-02dwarf_loader: Add conditional DW_FORM_implicit_const definition for older sys...Arnaldo Carvalho de Melo1-0/+4
2021-02-01dwarf_loader: Handle DWARF5 DW_TAG_call_site like DW_TAG_GNU_call_siteMark Wielaard1-0/+7
2021-02-01dwarf_loader: Support DW_FORM_implicit_const in __attr_offset()Jiri Olsa1-0/+1
2021-01-28dwarf_loader: Support DW_AT_data_bit_offsetDW_AT_data_bit_offsetArnaldo Carvalho de Melo1-29/+45
2021-01-27dwarf_loader: Optimize a bit the reading of DW_AT_data_member_locationArnaldo Carvalho de Melo1-2/+9
2021-01-27dwarf_loader: Fix typoArnaldo Carvalho de Melo1-1/+1
2021-01-27dwarf_loader: Introduce __attr_offset() to reuse call to dwarf_attr()Arnaldo Carvalho de Melo1-8/+14
2021-01-27dwarf_loader: Support DW_FORM_implicit_const in attr_numeric()Arnaldo Carvalho de Melo1-0/+1
2020-11-09dwarf_loader: Fix partial unit warningArnaldo Carvalho de Melo1-1/+1
2020-10-20strings: use BTF's string APIs for strings managementAndrii Nakryiko1-1/+1
2020-10-20strings: Rename strings.h to avoid clashing with /usr/include/strings.hArnaldo Carvalho de Melo1-1/+1
2020-10-09dwarf_loader: increase the size of lookup hash mapAndrii Nakryiko1-1/+1
2020-10-08dwarf_loader: Conditionally define DW_AT_alignmentArnaldo Carvalho de Melo1-0/+4
2020-10-02dwarf_loader: Ignore top level DW_TAG_dwarf_procedure tagsArnaldo Carvalho de Melo1-1/+4
2020-10-01btf_encoder: Handle DW_TAG_variable that has DW_AT_specificationHao Luo1-1/+24
2020-09-23dwarf_loader: Check for unsupported_tag return in last two missing placesArnaldo Carvalho de Melo1-0/+10
2020-09-23dwarf_loader: Warn user about unsupported TAGsArnaldo Carvalho de Melo1-3/+9
2020-09-23dwarf_loader: Handle unsupported_tag return in die__process_class()Arnaldo Carvalho de Melo1-0/+5
2020-09-22dwarf_loader: Add minimal handling of DW_TAG_subrange_typeArnaldo Carvalho de Melo1-0/+4
2020-09-22dwarf_loader: Ignore DW_TAG_variant_part for now to fix a segfaultArnaldo Carvalho de Melo1-0/+1
2020-09-22dwarf_loader: Skip empty CUsArnaldo Carvalho de Melo1-0/+3
2020-09-18dwarf_loader: Support DW_TAG_string_typeArnaldo Carvalho de Melo1-0/+26
2020-09-18dwarf_loader: Bail out at DW_TAG_imported_unit tagsArnaldo Carvalho de Melo1-0/+2
2020-09-18dwarf_loader: Ignore entries in a DW_TAG_partial_unit, for nowArnaldo Carvalho de Melo1-1/+13
2020-08-17dwarf_loader: Move vaddr to conditional where it is usedArnaldo Carvalho de Melo1-1/+1
2020-08-05dwarves: Move the common initialization of fields for 'struct type'Arnaldo Carvalho de Melo1-4/+1
2020-08-05dwarves: Find common enumerators prefixArnaldo Carvalho de Melo1-0/+2
2020-08-05dwarves: Allow setting a struct/class member as the source of sizeof()Arnaldo Carvalho de Melo1-0/+1
2019-11-05btf_encoder: Preserve and encode exported functions as BTF_KIND_FUNCAndrii Nakryiko1-0/+1
2019-07-01dwarf_loader: Fix array overrun accessArnaldo Carvalho de Melo1-14/+2
2019-04-15core: Allow the loaders to advertise features they haveArnaldo Carvalho de Melo1-0/+1
2019-04-09dwarf_loader: Store DW_AT_alignment if available in DW_TAG_{structure,union,c...Arnaldo Carvalho de Melo1-0/+1
2019-04-03dwarf_loader: Handle DW_TAG_label in inline expansionsArnaldo Carvalho de Melo1-4/+7
2019-04-03dwarf_loader: Handle unsupported_tag in die__process_inline_expansionArnaldo Carvalho de Melo1-2/+5
2019-04-03dwarf_loader: Store the DW_AT_alignment if availableArnaldo Carvalho de Melo1-0/+1
2019-03-29dwarf_loader: Use DWARF recommended uniform bit offset schemeAndrii Nakryiko1-45/+76
2019-03-29loaders: Record CU's endianness in dwarf/btf/ctf loadersAndrii Nakryiko1-0/+12
2019-03-29dwarf_loader: Fix bitfield fixup logic for DWARFAndrii Nakryiko1-23/+33
2019-03-29dwarf_loader: Don't recode enums and use real enum size in calculationsAndrii Nakryiko1-2/+2
2019-03-29loaders: Strip away volatile/const/restrict when fixing bitfieldsAndrii Nakryiko1-6/+1
2019-03-11dwarves: Introduce type_id_t for use with the type IDsArnaldo Carvalho de Melo1-1/+1
2019-03-11dwarf: Add cu__add_tag_with_id() to stop using id == -1 to allocate idArnaldo Carvalho de Melo1-9/+9
2019-03-07dwarf_loader: Mark tag__recode_dwarf_bitfield() staticArnaldo Carvalho de Melo1-1/+1
2019-02-25dwarf_loader: Fixup bitfield entry with same number of bits as its base_typeArnaldo Carvalho de Melo1-8/+7
2019-01-18Adopt SPDX-License-IdentifierDomenico Andreoli1-4/+2
2018-12-20btf: fix struct/union/fwd types with kind_flagYonghong Song1-1/+3
2018-09-26dwarves_fprintf: Print the scope of variablesArnaldo Carvalho de Melo1-0/+13
2018-09-26dwarves: Add the DWARF location to struct variableArnaldo Carvalho de Melo1-6/+6
2018-09-26dwarves: Rename variable->location to ->scopeArnaldo Carvalho de Melo1-11/+16
2018-08-28dwarf_loader: Process DW_AT_count in DW_TAG_subrange_typeYonghong Song1-0/+6
2018-08-13dwarf_loader: Initial support for DW_TAG_partial_unitArnaldo Carvalho de Melo1-2/+2
2016-05-19dwarf_loader: Add URL for template tags descriptionArnaldo Carvalho de Melo1-2/+7
2016-05-19dwarf_loader: Tidy up template tags usageArnaldo Carvalho de Melo1-1/+5
2016-05-19dwarf_loader: Do not hash unsupported tagsArnaldo Carvalho de Melo1-2/+6
2016-05-19dwarf_loader: Add DW_TAG_GNU_formal_parameter_pack stub in process_functionArnaldo Carvalho de Melo1-0/+1
2016-05-19dwarf_loader: Ignore DW_TAG_dwarf_procedure when processing functionsArnaldo Carvalho de Melo1-0/+6
2016-05-17dwarf_loader: Initial support for DW_TAG_unspecified_typeArnaldo Carvalho de Melo1-0/+1
2016-05-06dwarf_loader: Stop emitting warnings about DW_TAG_call_siteArnaldo Carvalho de Melo1-6/+14
2016-05-06dwarf_loader: Add support for DW_TAG_restrict_typeArnaldo Carvalho de Melo1-0/+1
2016-03-15dwarves: Initial support for rvalue_reference_typeArnaldo Carvalho de Melo1-0/+1
2015-06-05dwarf_loader: Check cu__find_type_by_ref resultArnaldo Carvalho de Melo1-2/+6
2014-11-19dwarf_loader: Ignore DW_TAG_dwarf_procedureArnaldo Carvalho de Melo1-0/+5
2014-11-19dwarf_loader: Print unknown tags as an hex numberArnaldo Carvalho de Melo1-2/+2
2014-07-03dwarf_loader: Use obstack_zalloc when allocating tagMasatake YAMATO1-1/+1
2013-08-15dwarf_loader: Support DW_FORM_data{4,8} for reading class member offsetsArnaldo Carvalho de Melo1-0/+2
2012-08-20dwarves: Support static class data membersArnaldo Carvalho de Melo1-43/+57
2012-08-17dwarves: Stop using 'self'Arnaldo Carvalho de Melo1-300/+299
2012-08-16dwarf_loader: Don't stop processing after finding unsupported tagArnaldo Carvalho de Melo1-1/+6
2012-05-15dwarf_loader: Stub for DW_TAG_GNU_call_site{_parameter} in inline expansion tooArnaldo Carvalho de Melo1-0/+8
2012-05-14dwarf loader: Fix some type/tag searchesArnaldo Carvalho de Melo1-5/+5
2012-05-14Merge branch 'debug-types' of https://github.com/tromey/dwarvesArnaldo Carvalho de Melo1-97/+219
2012-05-14Merge branch 'remove-unneeded-call' of https://github.com/tromey/dwarvesArnaldo Carvalho de Melo1-4/+4
2012-05-09dwarf_loader: Add stub for DW_TAG_GNU_call_site{_parameter}Arnaldo Carvalho de Melo1-0/+13
2012-03-22Add support for .debug_types sections.Tom Tromey1-89/+219
2012-03-22Remove unused field from debug_fmt_opsTom Tromey1-8/+0
2012-03-20Correctly handle DW_FORM_flag and add DW_FORM_flag_present supportTom Tromey1-1/+6
2012-03-20Remove unnecessary call to dwarf_diecuTom Tromey1-4/+4
2011-03-17dwarf_loader: Fix the build on older systemsArnaldo Carvalho de Melo1-1/+7
2010-11-20dwarf loader: Catch some more template tagsv1.9Arnaldo Carvalho de Melo1-0/+29
2010-11-20dwarves fprintf: Add extra GNU tagsArnaldo Carvalho de Melo1-0/+6
2010-11-20dwarf loader: Print tag numerical value in addition to stringArnaldo Carvalho de Melo1-2/+4
2010-11-20dwarf loader: Initialize tag->nodeArnaldo Carvalho de Melo1-0/+2
2010-11-20dwarf_loader: Catch DW_TAG_template_{type,value}_parameterArnaldo Carvalho de Melo1-0/+5
2009-11-24dwarf_loader: Support more compact DW_AT_data_member_location formArnaldo Carvalho de Melo1-3/+17
2009-09-20dwarf_loader: Properly initialize ->size in lexblock__initArnaldo Carvalho de Melo1-2/+3
2009-08-20dwarf_loader: Follow const types too in class_member__cache_byte_sizeArnaldo Carvalho de Melo1-1/+1
2009-08-20dwarf_loader/dwarves_fprintf: Support "using" pointing to data membersArnaldo Carvalho de Melo1-0/+12
2009-08-18dwarves: Pass the cu to destructors to free memory on the obstackArnaldo Carvalho de Melo1-15/+15
2009-07-08dwarves: Use an obstack for all the tagsArnaldo Carvalho de Melo1-10/+22
2009-07-08dwarf_loader: Use an obstack for the extra dbg infoArnaldo Carvalho de Melo1-48/+39
2009-07-06dwarves: Allow avoiding loading addr informationArnaldo Carvalho de Melo1-9/+15
2009-07-06dwarf_loader: Don't always call dwarf_decl_{file,line}Arnaldo Carvalho de Melo1-89/+99
2009-06-04dwarves: Make all the tags that have an IP to be derived from ip_tagArnaldo Carvalho de Melo1-20/+20
2009-06-03dwarf_loader: Move the specification Dwarf_Off from the coreArnaldo Carvalho de Melo1-14/+38