Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Merge branch 'dwarf' of ssh://git.fedorahosted.org/git/elfutils into dwarf | Petr Machata | 2011-03-17 | 5 | -228/+222 | |
|\ \ | ||||||
| * | | Workaround weird (buggy) self referential DW_AT_containing_type case. | Mark Wielaard | 2011-03-16 | 1 | -1/+9 | |
| | | | | | | | | | | | | https://fedorahosted.org/pipermail/elfutils-devel/2011-February/001792.html | |||||
| * | | Add reference chain cycle detection. | Mark Wielaard | 2011-03-16 | 1 | -7/+28 | |
| | | | ||||||
| * | | Calculate reference hash before finalizing, store in die_info. | Mark Wielaard | 2011-03-16 | 1 | -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 Wielaard | 2011-03-16 | 1 | -16/+15 | |
| | | | ||||||
| * | | Never recalculate local hash, always reuse die_info stored one. | Mark Wielaard | 2011-03-16 | 1 | -1/+1 | |
| | | | ||||||
| * | | Fetch local hash from pending or finalized entry die. Use it in attr_value. | Mark Wielaard | 2011-03-16 | 1 | -4/+12 | |
| | | | ||||||
| * | | Don't finalize entries on first go, just create and store die_info for them. | Mark Wielaard | 2011-03-16 | 1 | -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 Wielaard | 2011-03-16 | 1 | -87/+66 | |
| | | | ||||||
| * | | Add local hash for children_types. | Mark Wielaard | 2011-03-16 | 1 | -3/+22 | |
| | | | ||||||
| * | | Add local_hash to attributes_type and use it for die hash. | Mark Wielaard | 2011-03-16 | 1 | -6/+35 | |
| | | | | | | | | | | | | Skips values of reference attributes. | |||||
| * | | Turn copier::entry into a value_reference so what_space works on it. | Mark Wielaard | 2011-03-16 | 1 | -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 Wielaard | 2011-03-16 | 1 | -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 Wielaard | 2011-03-16 | 1 | -0/+6 | |
| | | | ||||||
| * | | DW_AT_*_file is allowed to be zero, meaning "no file". | Mark Wielaard | 2011-03-16 | 2 | -3/+20 | |
| | | | ||||||
| * | | Remove unused output-shape from dwarf_output collector. | Mark Wielaard | 2011-03-16 | 3 | -193/+1 | |
| | | | ||||||
* | | | dwarflint: Better validation of .debug_line table header length | Petr Machata | 2011-03-17 | 5 | -7/+33 | |
|/ / | ||||||
* | | dwarflint: Replace over-zealous assert with a warning | Petr Machata | 2011-03-14 | 3 | -3/+12 | |
| | | ||||||
* | | dwarflint: Fix "die chain not terminated by a null entry" for CU DIE | Petr Machata | 2011-03-10 | 4 | -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 program | Petr Machata | 2011-03-10 | 6 | -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-level | Petr Machata | 2011-03-10 | 3 | -4/+17 | |
| | | ||||||
* | | dwarflint: Detect and diagnose empty CU | Petr Machata | 2011-03-10 | 1 | -4/+8 | |
| | | ||||||
* | | dwarflint: Check that CU DIE has stmt_list if children have decl_file | Petr Machata | 2011-03-09 | 3 | -4/+15 | |
| | | | | | | | | - Mark's test case attached | |||||
* | | dwarflint: Properly diagnose DW_AT_sibling with value of 0 | Petr Machata | 2011-03-09 | 3 | -2/+23 | |
| | | ||||||
* | | dwarflint: Fix attribute and form validation in .debug_abbrev and .debug_info | Petr Machata | 2011-03-09 | 8 | -56/+68 | |
| | | | | | | | | - and a test case that used to SIGSEGV | |||||
* | | dwarflint: Fix a SEGV for invalid address size in CU header | Petr Machata | 2011-03-09 | 6 | -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 parsed | Petr Machata | 2011-03-09 | 1 | -2/+4 | |
| | | ||||||
* | | dwarflint: Check that there's enough data for .debug_line opcode | Petr Machata | 2011-03-09 | 5 | -8/+29 | |
| | | | | | | | | - fixes a SEGV on invalid data. Test case provided | |||||
* | | dwarflint: Don't let sibling address mismatches to high-level | Petr Machata | 2011-03-08 | 3 | -1/+6 | |
| | | ||||||
* | | dwarflint: Don't let unterminated strings in .debug_str to high-level | Petr Machata | 2011-03-08 | 1 | -4/+9 | |
| | | ||||||
* | | dwarflint: We should not let the abbrev code 0 propagate up | Petr Machata | 2011-03-08 | 2 | -1/+10 | |
| | | ||||||
* | | dwarflint: Update TODO | Petr Machata | 2011-03-08 | 1 | -0/+7 | |
| | | ||||||
* | | dwarflint: Fix the check that DIE chains are terminated with null entry | Petr Machata | 2011-03-08 | 3 | -9/+17 | |
| | | | | | | | | | | - and turn in to strict message - and update test cases | |||||
* | | dwarflint: Put the --dump-offsets option to the right group | Petr Machata | 2011-03-08 | 1 | -5/+5 | |
| | | ||||||
* | | dwarflint: Fix iteration over low-level attributes | Petr Machata | 2011-03-08 | 3 | -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 tag | Petr Machata | 2011-03-07 | 3 | -5/+20 | |
| | | ||||||
* | | dwarflint: Check that the name of relocated section is valid | Petr Machata | 2011-03-07 | 3 | -3/+11 | |
| | | ||||||
* | | dwarflint: More thorough checking of Dw4Ch7.5 (toplevel CU DIE) | Petr Machata | 2011-03-07 | 1 | -6/+18 | |
| | | ||||||
* | | dwarflint: Rename readctx.{c,h} to .{cc,hh} | Petr Machata | 2011-03-07 | 6 | -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 TODO | Petr Machata | 2011-03-07 | 1 | -0/+7 | |
| | | ||||||
* | | dwarflint: Add Mark's test case for the previous commit | Petr Machata | 2011-03-07 | 3 | -1/+322 | |
| | | ||||||
* | | dwarflint: Check for excess DIEs on top level | Petr Machata | 2011-03-07 | 1 | -4/+10 | |
| | | ||||||
* | | dwarflint: Drop useless variable prev_abbrev in check_debug_info | Petr Machata | 2011-03-07 | 1 | -2/+0 | |
| | | ||||||
* | | dwarflint: Publish the option --dump-offsets | Petr Machata | 2011-03-04 | 2 | -2/+3 | |
| | | | | | | | | | | - must have been forgotten - and one coding style nit | |||||
* | | dwarflint: Add Mark's test cases | Petr Machata | 2011-03-03 | 6 | -4/+531 | |
| | | ||||||
* | | dwarflint: Be lazy when looking into CU headers for check_debug_abbrev | Petr Machata | 2011-03-03 | 3 | -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-it | Petr Machata | 2011-03-03 | 5 | -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 up | Petr Machata | 2011-03-02 | 2 | -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 symbol | Petr Machata | 2011-03-01 | 1 | -0/+8 | |
| | | ||||||
* | | dwarflint: More checks on invalid section indices in relocations | Petr Machata | 2011-03-01 | 1 | -6/+24 | |
| | |