Skip to content
  1. Jan 10, 2017
  2. Dec 22, 2016
  3. Dec 20, 2016
  4. Nov 11, 2016
    • Greg Clayton's avatar
      Fixed issues found by Paul Robinson with my patch for: · 2104040e
      Greg Clayton authored
      https://reviews.llvm.org/D26526
      
      - Fixed DW_FORM_strp to be correctly sized and extracted for DWARF64
      - Added some missing strp variants as well
      - Fixed comment typo
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286603 91177308-0d34-0410-b5e6-96231b3b80d8
      2104040e
    • Greg Clayton's avatar
      Clean up DWARFFormValue by reducing duplicated code and removing... · f5acbc29
      Greg Clayton authored
      Clean up DWARFFormValue by reducing duplicated code and removing DWARFFormValue::getFixedFormSizes()
      
      In preparation for a follow on patch that improves DWARF parsing speed, clean up DWARFFormValue so that we have can get the fixed byte size of a form value given a DWARFUnit or given the version, address byte size and dwarf32/64.
      
      This patch cleans up code so that everyone is using one of the new DWARFFormValue functions:
      
      static Optional<uint8_t> DWARFFormValue::getFixedByteSize(dwarf::Form Form, const DWARFUnit *U = nullptr);
      static Optional<uint8_t> DWARFFormValue::getFixedByteSize(dwarf::Form Form, uint16_t Version, uint8_t AddrSize, bool Dwarf32);
      
      This patch changes DWARFFormValue::skipValue() to rely on the output of DWARFFormValue::getFixedByteSize(...) instead of duplicating the code in each function. This will reduce the number of changes we need to make to DWARF to fewer places in DWARFFormValue when we add support for new form.
      
      This patch also starts to support DWARF64 so that we can get correct byte sizes for forms that vary according the DWARF 32/64.
      
      To reduce the code duplication a new FormSizeHelper pure virtual class was created that can be created as a FormSizeHelperDWARFUnit when you have a DWARFUnit, or FormSizeHelperManual where you manually specify the DWARF version, address byte size and DWARF32/DWARF64. There is now a single implementation of a function that gets the fixed byte size (instead of two where one took a DWARFUnit and one took the DWARF version, address byte size and DWARFFormat enum) and one function to skip the form values.
      
      https://reviews.llvm.org/D26526
      
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286597 91177308-0d34-0410-b5e6-96231b3b80d8
      f5acbc29
  5. Oct 31, 2016
    • Greg Clayton's avatar
      Modify DWARFFormValue to remember the DWARFUnit that it was decoded with. · 1a30f4b7
      Greg Clayton authored
      Modifying DWARFFormValue to remember the DWARFUnit that it was encoded with can simplify the usage of instances of this class. Previously users would have to try and pass in the same DWARFUnit that was used to decode the form value and there was a possibility that a different DWARFUnit might be supplied to the functions that extract values (strings, CU relative references, addresses) and cause problems. This fixes this potential issue by storing the DWARFUnit inside the DWARFFormValue so that this mistake can't be made. Instances of DWARFFormValue are not stored permanently and are used as temporary values, so the increase in size of an instance of DWARFFormValue isn't a big deal. This makes decoding form values more bullet proof and is a change that will be used by future modifications.
      
      https://reviews.llvm.org/D26052
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285594 91177308-0d34-0410-b5e6-96231b3b80d8
      1a30f4b7
  6. Oct 27, 2016
  7. Dec 04, 2015
  8. Oct 21, 2015
  9. Sep 21, 2015
  10. Jun 23, 2015
  11. Jun 19, 2015
  12. May 25, 2015
  13. May 19, 2015
    • Alexey Samsonov's avatar
      [DWARF parser] Add basic support for DWZ DWARF multifile extensions. · 4ca606f2
      Alexey Samsonov authored
      This change implements basic support for DWARF alternate sections
      proposal: http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open
      
      LLVM tools now understand new forms: DW_FORM_GNU_ref_alt and
      DW_FORM_GNU_strp_alt, which are used as references to .debug_info and
      .debug_str sections respectively, stored in a separate file, and
      possibly shared between different executables / shared objects.
      
      llvm-dwarfdump and llvm-symbolizer don't yet know how to access this
      alternate debug file (usually pointed by .gnu_debugaltlink section),
      but they can at lease properly parse and dump regular files, which
      refer to it.
      
      This change should fix crashes of llvm-dwarfdump and llvm-symbolizer on
      files produced by running "dwz" tool. Such files are already installed
      on some modern Linux distributions.
      
      git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237721 91177308-0d34-0410-b5e6-96231b3b80d8
      4ca606f2
  14. Mar 04, 2015
  15. Jan 30, 2015
  16. Jan 14, 2015
  17. Jan 06, 2015
  18. Dec 19, 2014
  19. Nov 12, 2014
  20. Sep 04, 2014
  21. Apr 15, 2014
  22. Oct 29, 2013
  23. Oct 28, 2013
  24. Oct 18, 2013
  25. Sep 23, 2013
  26. Sep 22, 2013
  27. Aug 27, 2013
  28. Jun 19, 2013
  29. May 30, 2013