Comments (8)
Obsoleting #8.
from dyninst.
Jump table parsing is failing. Will get a parse log and toss it in gist tomorrow.
from dyninst.
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.
The fix is in #37.
from dyninst.
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.
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.
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.
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)
- callq instruction in instrumentation HOT 13
- Build failure when ENABLE_PARSE_API_GRAPHS=ON
- better handling of .cold (not a) function symbols
- Relocating AVX instruction with PC relative addresses cause an assertion failure
- Dockerfile spack.yaml property error HOT 1
- Test failures with glibc-2.35 HOT 1
- x86 code not interpreted correctly on arm and powerpc HOT 1
- AMD GPU instruction analysis can proceed into non-code sections
- Instruction parsing and analysis fails when architecture semantics are not available.
- 12.2.1: build fails with gcc 13.x HOT 6
- Add amd gpu gfx908 (mi100) support to Dyninst HOT 1
- v12.3.0 compilation fails with gcc-6 and clang
- enable warnings for dataflowAPI source files
- TODO for Github CI
- Static rewriting leads to unexpected backtraces HOT 9
- InstructionAPI mis-parses vpermpd instruction HOT 3
- memory access parameters HOT 1
- Fix race condition in parsing w/ isSyscall() HOT 4
- Stack frame size exceeded when building with clang-15
- -Werror=restrict with gcc-12 -std=c++2{0,3} HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dyninst.