Comments (3)
There are a few infinite loops like that in MAMBO. They are basically asserts which stop execution and allow you to attach a debugger and inspect the context instead of exiting. I'll admit that doing that silently is less than ideal.
In this case, the issue is that the values saved at scanner_arm.c#L411 and which would be restored by the dispatcher are stale (because those values would be overwritten by the POP). I think the best solution is to POP (reglist & 3) before inserting the lookup routine, but I'll need to take a closer look. By the way, where have you encountered this instruction? It doesn't look compiler generated, which is why I've never encountered it before.
from mambo.
What you say makes sense. So in that case, technically speaking, shouldn't the assert statement also check if r2 is being POPed? I'm aware that arm_inline_hash_lookup
doesn't use r2 but then the values saved in scanner_arm.c#L411 saves r2 as well.
from mambo.
The updated value of R2 (i.e. after the POP) is saved at scanner_arm.c#L428, so it doesn't have to be included in the assert. Now, I've spent a bit of time looking at the file history to try to understand why R2 is also saved by the STM, but as far as I can tell it's always been redundant.
from mambo.
Related Issues (20)
- SIGSEGV on up-to-date Arch Linux Arm systems on thread exit HOT 2
- Building with clang HOT 2
- Building on Android HOT 14
- drcov plugin
- Incorrect pcrel address calculation in Thumb HOT 4
- Segmentation fault on RPi 3 B (2018-11-13-raspbian-stretch) HOT 3
- Assertion error and Segmentation fault on docker containers HOT 2
- thumb_load_store_single_reg_imm12_32 caculate wrong instruction whem imm12 is less than 0x40 HOT 4
- Error compiling - cannot find pie/pie-arm HOT 2
- plugin compile errorerror: 'mambo_context' {aka 'struct <anonymous>'} has no member named 'read_address' HOT 3
- cannot stop main thread when running on android HOT 9
- vcvtp instruction not handled HOT 1
- status flags currupted by inline hash lookup code HOT 4
- Is there any way to build Mambo as a Dynamic Linked Library?
- Continuous Integration (CI) HOT 1
- Unknown A64 instruction: 82 HOT 2
- Need help executing 32bit arm binaries on aarch64 HOT 3
- Unknown A64 instruction
- Segmentation fault when main thread finishes before its children
- ISPASS 2023 - MAMBO for RISC-V 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 mambo.