summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add check_self_referential_die pass to dwarflint.mjw/check_self_referential_dieMark Wielaard2011-03-172-0/+87
|
* Merge branch 'dwarf' of ssh://git.fedorahosted.org/git/elfutils into dwarfPetr Machata2011-03-175-228/+222
|\
| * Workaround weird (buggy) self referential DW_AT_containing_type case.Mark Wielaard2011-03-161-1/+9
| | | | | | | | https://fedorahosted.org/pipermail/elfutils-devel/2011-February/001792.html
| * Add reference chain cycle detection.Mark Wielaard2011-03-161-7/+28
| |
| * Calculate reference hash before finalizing, store in die_info.Mark Wielaard2011-03-161-3/+63
| | | | | | | | | | | | | | | | Follows whole reference chain (ignoring children) and combines local references of all dies found. Reduces number of attr_set collisions a lot. Unfortunately there are circular reference chains for some larger c++ programs. That was unexpected. Needs cycle detection to figure out what is going on.
| * Add get_die_info to references, use for hash calculation.Mark Wielaard2011-03-161-16/+15
| |
| * Never recalculate local hash, always reuse die_info stored one.Mark Wielaard2011-03-161-1/+1
| |
| * Fetch local hash from pending or finalized entry die. Use it in attr_value.Mark Wielaard2011-03-161-4/+12
| |
| * Don't finalize entries on first go, just create and store die_info for them.Mark Wielaard2011-03-161-17/+24
| | | | | | | | Do all finalization for the whole CU after walking the whole tree.
| * Calculate local_hash only on finalizing entry, store in die_info.Mark Wielaard2011-03-161-87/+66
| |
| * Add local hash for children_types.Mark Wielaard2011-03-161-3/+22
| |
| * Add local_hash to attributes_type and use it for die hash.Mark Wielaard2011-03-161-6/+35
| | | | | | | | Skips values of reference attributes.
| * Turn copier::entry into a value_reference so what_space works on it.Mark Wielaard2011-03-161-1/+1
| | | | | | | | | | | | copier::entry is used as a value_reference when an attr_value has a dangling reference to a DIE not yet built in the output. So make sure its type matches that usage.
| * Introduce local_hash for dwarf_output debug_info_die.Mark Wielaard2011-03-161-13/+46
| | | | | | | | | | | | | | | | Very simplistic local_hash implementation. Just takes tag name, attributes and children sizes into account. But is good enough to make all the dwarf_edit_output tests pass. Some dwarfcmp-test-self tests fail though. it also generates a significant number of collissions for the dwarf_output_collector attr_sets.
| * Add the *info () hack in dwarf_output, so we can rely on it for now.Mark Wielaard2011-03-161-0/+6
| |
| * DW_AT_*_file is allowed to be zero, meaning "no file".Mark Wielaard2011-03-162-3/+20
| |
| * Remove unused output-shape from dwarf_output collector.Mark Wielaard2011-03-163-193/+1
| |
* | dwarflint: Better validation of .debug_line table header lengthPetr Machata2011-03-175-7/+33
|/
* dwarflint: Replace over-zealous assert with a warningPetr Machata2011-03-143-3/+12
|
* dwarflint: Fix "die chain not terminated by a null entry" for CU DIEPetr Machata2011-03-104-10/+11
| | | | | | | - CU DIE is not part of DIE chain, it's a singleton (with optional null entries following it as padding) - consequently, don't emit this message for CU DIE, and change it to full error for all other cases
* dwarflint: Missing DW_LNE_end_sequence OK in empty line number programPetr Machata2011-03-106-22/+21
| | | | | - also the fact that the line number program is empty is not a problem in itself, only when combined with otherwise unused file table
* dwarflint: Fix last-die-has-sibling-attr message, don't let such to high-levelPetr Machata2011-03-103-4/+17
|
* dwarflint: Detect and diagnose empty CUPetr Machata2011-03-101-4/+8
|
* dwarflint: Check that CU DIE has stmt_list if children have decl_filePetr Machata2011-03-093-4/+15
| | | | - Mark's test case attached
* dwarflint: Properly diagnose DW_AT_sibling with value of 0Petr Machata2011-03-093-2/+23
|
* dwarflint: Fix attribute and form validation in .debug_abbrev and .debug_infoPetr Machata2011-03-098-56/+68
| | | | - and a test case that used to SIGSEGV
* dwarflint: Fix a SEGV for invalid address size in CU headerPetr Machata2011-03-096-22/+53
| | | | | | | - read_address_size has a richer interface now. New type error_code, which might be more generally useful - adapt callers - add test case
* dwarflint: Clarify error message when CU headers can't be parsedPetr Machata2011-03-091-2/+4
|
* dwarflint: Check that there's enough data for .debug_line opcodePetr Machata2011-03-095-8/+29
| | | | - fixes a SEGV on invalid data. Test case provided
* dwarflint: Don't let sibling address mismatches to high-levelPetr Machata2011-03-083-1/+6
|
* dwarflint: Don't let unterminated strings in .debug_str to high-levelPetr Machata2011-03-081-4/+9
|
* dwarflint: We should not let the abbrev code 0 propagate upPetr Machata2011-03-082-1/+10
|
* dwarflint: Update TODOPetr Machata2011-03-081-0/+7
|
* dwarflint: Fix the check that DIE chains are terminated with null entryPetr Machata2011-03-083-9/+17
| | | | | - and turn in to strict message - and update test cases
* dwarflint: Put the --dump-offsets option to the right groupPetr Machata2011-03-081-5/+5
|
* dwarflint: Fix iteration over low-level attributesPetr Machata2011-03-083-3/+7
| | | | | - this to allow (certainly bogus, but anyway) attribute name == 0 - test case that triggers this
* dwarflint: Fail low-level cases if toplevel CU DIE has wrong tagPetr Machata2011-03-073-5/+20
|
* dwarflint: Check that the name of relocated section is validPetr Machata2011-03-073-3/+11
|
* dwarflint: More thorough checking of Dw4Ch7.5 (toplevel CU DIE)Petr Machata2011-03-071-6/+18
|
* dwarflint: Rename readctx.{c,h} to .{cc,hh}Petr Machata2011-03-076-11/+11
| | | | | - I had something in mind that needed the C++ bits from the rest of dwarflint, but that turned out to be too convoluted to be practical
* dwarflint: A note in TODOPetr Machata2011-03-071-0/+7
|
* dwarflint: Add Mark's test case for the previous commitPetr Machata2011-03-073-1/+322
|
* dwarflint: Check for excess DIEs on top levelPetr Machata2011-03-071-4/+10
|
* dwarflint: Drop useless variable prev_abbrev in check_debug_infoPetr Machata2011-03-071-2/+0
|
* dwarflint: Publish the option --dump-offsetsPetr Machata2011-03-042-2/+3
| | | | | - must have been forgotten - and one coding style nit
* dwarflint: Add Mark's test casesPetr Machata2011-03-036-4/+531
|
* dwarflint: Be lazy when looking into CU headers for check_debug_abbrevPetr Machata2011-03-033-10/+24
| | | | | | | - And so don't complain that we have no headers in cases where we have no abbrevs either. - Also consider no abbrevs a message, not an error - Add a test case for the same
* dwarflint: Fix all-dies-itPetr Machata2011-03-035-31/+128
| | | | | | | - Account for the case that die.has_children and at the same time die.children().begin() == die.children().end() - Change the algorithm to iterate DIEs acually in pre-order - Add a test case
* dwarflint: Fail check_debug_info test if serious error turns upPetr Machata2011-03-022-32/+16
| | | | | - All the tracking was in place, we just forgot to actually throw the exception in the end.
* dwarflint: Check that the relocation is formed using a defined symbolPetr Machata2011-03-011-0/+8
|