Giter VIP home page Giter VIP logo

libdwarf's People

Contributors

rmustacc avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

msgpo

libdwarf's Issues

README update about branches & git commits?

It appears the 20200612 branch has a LOT of commits in it, vs. master. So are we keeping master as the origin?

"The branch contains a base commit, which is the release tarball. From there, changes that we have applied to build on illumos are committed as individual patches."

it looks like maybe README needs to be updated to instead of "base commit as tarball" it is instead "base pull from upstream"?

libdwarf incorrectly identifies 32-bit x86 clang DWARF strings

When building a 32-bit relocatable object, dwarfdump and libdwarf misidentify the strings that are used for clang. DWARF has two different ways to emit strings. One, DW_FORM_string basically emits the ascii string into the dwarf sections. The other, DW_FORM_strp emits a four byte offset into the .debug_str section.

A 32-bit clang will emit references of the form DW_FORM_strp; however, it will leave the offset in the dwarf as zero because it sets up a relocation of the type R_386_32 whose symbol is to a specific spot in the .debug_str section. libdwarf doesn't process these relocations today because it assumes that they'll be done in a way that gcc does it, where by it sets the symbol for the relocation to be the start of the .debug_str section and instead leaves an addend in the symbol location which is its offset into the .debug_str section. The side effect of this is that it means that every string reference ends up always being to the first string in the .debug_str section, which humerously in our case means that every type, member, and path is clang version 9.0.0 (tags/RELEASE_900/final).

The fix to this is to have libdwarf actually process the SHT_REL sections and not just the SHT_RELA sections. I've put together a change that's good enough for 32-bit x86.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.