summaryrefslogtreecommitdiffstats
path: root/dwarf_wrappers.cxx
Commit message (Collapse)AuthorAgeFilesLines
* PR10461: Add support for C++ classes and referencesJosh Stone2009-08-211-11/+45
| | | | | | | | | | * dwarf_wrappers.cxx (dwarf_type_name): Name class and reference types. * dwflpp.cxx (dwflpp::iterate_over_globals): Capture class names. (dwflpp::print_members): Permit classes, and dig into inheritance. (dwflpp::find_struct_member): Ditto. (dwflpp::translate_components): Handle classes and references. (dwflpp::translate_final_fetch_or_store): Ditto. * loc2c.c (c_translate_pointer): Treat references as simple pointers.
* Create a dwarf_attr_die idiomJosh Stone2009-08-191-3/+1
| | | | | | | | | | | | | | | We commonly do a dwarf_attr_integrate followed by dwarf_formref_die, with no care for the Dwarf_Attribute, so I captured that idiom in an inline function. * dwarf_wrappers.h (dwarf_attr_die): New. * dwarf_wrappers.cxx (dwarf_type_name): Call dwarf_attr_die. * dwflpp.cxx (dwflpp::print_members): Ditto. (dwflpp::find_struct_member): Ditto. * tapsets.cxx (dwarf_derived_probe::saveargs): Ditto. (uprobe_derived_probe::saveargs): Ditto. (resolve_tracepoint_arg_type): Ditto. (tracepoint_derived_probe::build_args): Ditto.
* Use dwarf_type_name in more placesJosh Stone2009-08-191-1/+88
| | | | | | | | | | | | | | * dwarf_wrappers.cxx (dwarf_type_name): Moved here from tapsets.cxx, and added a variant that returns a string for easier ostreaming. * dwflpp.cxx (dwflpp::print_members): Use dwarf_type_name for errors. (dwflpp::find_struct_member): Ditto. (dwflpp::translate_components): Ditto. (dwflpp::translate_final_fetch_or_store): Ditto. (dwflpp::literal_stmt_for_pointer): Ditto. * tapsets.cxx (dwarf_derived_probe::saveargs): Pass die to dwarf_type_name by pointer instead of reference. (uprobe_derived_probe::saveargs): Ditto. (resolve_tracepoint_arg_type): Ditto.
* PR10499: Integrate attributes in dwarf_decl_file/lineJosh Stone2009-08-101-0/+42
| | | | | | | | | | | | | Elfutils prior to 0.143 didn't use attr_integrate when looking up the decl_file or decl_line, so the attributes would sometimes be missed. For those old versions, we define custom implementations to do the integration. * dwarf_wrappers.cxx (dwarf_decl_file_integrate): New. (dwarf_decl_line_integrate): New. * dwarf_wrappers.h: Add macros to redirect calls to the above functions. * dwflpp.cxx (dwflpp::iterate_over_labels): Replace a manual attribute lookup that is the same as dwarf_decl_line.
* Zap dwarf_diename_integrateJosh Stone2009-08-071-11/+0
| | | | | | The dwarf_diename in elfutils learned a long time ago to use dwarf_attr_integrate when looking up the name. Our minimum elfutils 0.126 has this, so we don't need to kludge it ourselves.
* Move dfwlpp into its own fileJosh Stone2009-05-121-0/+13
| | | | | It's not a terribly clean split, but moving it helps reveals some of the knots that need to be untangled.
* Add Vim modelines for GNU style in stapJosh Stone2009-01-281-0/+2
|
* fix segv on peculiar dwfl errors (probe process("/lib64").FOO {})Frank Ch. Eigler2009-01-201-2/+2
| | | | Reported-By: Daniel Tralamazza
* Correct dwfl_assert () implementation.Mark Wielaard2008-09-241-1/+1
|
* Fix some logic inversions with dwfl_assert.Tim Moore2008-06-111-0/+6
|
* PR 2608 plus some refactoring in tapsets.cxxTim Moore2008-06-111-0/+40
New dwarf_wrappers.h, dwarf_wrappers.cxx for for idiomatic access to libdwarf and refactoring somethings out of the giant classes in tapsets.cxx.