Changelog
=========

+ Version 0.25 (2018.09.01)

  - Make parsing of SH_TYPE and PT_TYPE fields dependent on the machine
    (e_machine header field), making it possible to support conflicting type
    enums between different machines (#71 and #121).
  - Add parsing and readelf dumping for .eh_frame (#155)
  - Support compressed sections (#152)
  - Better support for parsing core dumps (#147)
  - More comprehensive handling of ARM relocations (#121)
  - Convert all ascii encoding to utf-8 encoding (#182)
  - Don't attempt to hex/string dump SHT_NOBITS sections in readelf (#119).
  - Test with Python 3.6
  - Minor bugfixes (#118)
  - Cleanup: Use argparse instead of optparse
  - Make readelf comparison tests run in parallel using multiprocessing; cuts
    testing time 3-5x
  - Improvements in MIPS flags handling (#165)

+ Version 0.24 (2016.08.04)

  - Retrieve symbols by name - get_symbol_by_name (#58).
  - Symbol/section names are strings internally now, not bytestrings (this may
    affect API usage in Python 3) (#76).
  - Added DT_MIPS_* constants to ENUM_D_TAG (#79)
  - Made dwarf_decode_address example a bit more useful for command-line
    invocation.
  - More DWARF v4 support w.r.t decoding function ranges; DW_AT_high_pc value
    is now either absolute or relative to DW_AT_low_pc, depending on the class
    of the form encoded in the file. Also #89.
  - Support for SHT_NOTE sections (#109)
  - Support for .debug_aranges section (#108)
  - Support for zlib-compressed debug sections (#102)
  - Support for DWARF v4 line programs (#82)

+ Version 0.23 (2014.11.08)

  - Minimal Python 2.x version raised to 2.7
  - Basic support for MIPS (contributed by Karl Vogel).
  - Support for PT_NOTE segment parsing (contributed by Alex Deymo).
  - Support for parsing symbol table in dynamic segment
    (contributed by Nam T. Nguyen).

+ Version 0.22 (2014.03.30)

  - pyelftools repository moved to https://github.com/eliben/pyelftools
  - Support for version sections - contributed by Yann Rouillard.
  - Better ARM support (including AArch64) - contributed by Dobromir Stefanov.
  - Added some initial support for parsing Solaris OpenCSW ELF files
    (contributed by Yann Rouillard).
  - Added some initial support for DWARF4 (as generated by gcc 4.8)
    and DWARF generated by recent versions of Clang (3.3).
  - Added the get_full_path utility method to DIEs that have an associated
    file name / path (based on pull request #16 by Shaheed Haque).
  - Set up Travis CI integration.

+ Version 0.21 (2013.04.17)

  - Added new example: dwarf_decode_address - decode function name and
    file & line information from an address.
  - Issue #7: parsing incorrect DWARF was made a bit more forgiving for cases
    where serialized DIE trees have extra NULLs at the end.
  - Very initial support for ARM ELF files (Matthew Fernandez - pull
    request #6).
  - Support for dumping the dynamic section (Mike Frysinger - pull
    request #7).
  - Output of scripts/readelf.py now matches that of binutils 2.23.52.
  - Added more machine EM_ values to ENUM_E_TYPE.

+ Version 0.20 (2012.01.27)

  - Python 3 support
  - Fixed some problems with running tests
  - Issue #2: made all examples run (and test/run_examples_test.py pass)
    on Windows.

+ Version 0.10 - Initial public release (2012.01.06)
