Git Product home page Git Product logo

Comments (8)

wrwilliams avatar wrwilliams commented on May 23, 2024

Obsoleting #8.

from dyninst.

wrwilliams avatar wrwilliams commented on May 23, 2024

Jump table parsing is failing. Will get a parse log and toss it in gist tomorrow.

from dyninst.

mxz297 avatar mxz297 commented on May 23, 2024

I think I know the problem here. Currently parseAPI will invoke the new jump table parsing on every platform, which will then invoke the instruction semantic engine on Power or ARM and will fail miserably. I will get this fixed soon.

from dyninst.

mxz297 avatar mxz297 commented on May 23, 2024

The fix is in #37.

from dyninst.

wrwilliams avatar wrwilliams commented on May 23, 2024

Are our powerpc semantics not sufficient to cover jump tables, are they incompatible enough that the new algorithm can't use them, or is the algorithm itself not handling some common PPC idiom? This should work.

ARM not working is obviously not relevant, as we're not claiming to have a complete ParseAPI port for this release.

from dyninst.

mxz297 avatar mxz297 commented on May 23, 2024

For power, we currently have 32-bit instruction semantics and nothing for 64-bit instruction semantics. So the new jump table code should work for ppc32, but not ppc64.

The new jump table code was going to be invoked on ppc64 and ARM, which causes crashes. I changed jump table parsing on power to use the old heuristics and to simply give up on ARM.

I see your point that the new jump table code should work for ppc32, but I am not sure whether it is.

from dyninst.

wrwilliams avatar wrwilliams commented on May 23, 2024

I'll see if I can check ppc32 on vulcan.

Next question: does the newest ROSE have ppc64 semantics in any useful form? More generally, can you write up issues on non-x86 jump table parsing and what we need in order to move it to the new algorithm and create a non-9.2 milestone for them?

from dyninst.

wrwilliams avatar wrwilliams commented on May 23, 2024

Update: ppc32 is not practical for us to test. A naive implementation of ppc64 based on only what's in ppc32 is missing many critical instructions. Separate out the reversion to the old jump table algorithm from #37 and merge to master. I can create a new issue for the ppc64 semantic bits that are missing.

from dyninst.

Related Issues (20)

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.