DynamoRIO / DynamoRIO/dynamorio

ASSERT (/core/arch/aarchxx/mangle.c:2189 !(write_pc && !writeback && instr_writes_to_reg(instr, base, DR_QUERY_INCLUDE_ALL)))

Open
#2,880 6 comments 0 reactions 0 assignees View on GitHub
OpSys-ARM OpSys-Linux
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

```
pi@raspberrypi:~/DynamoRIO-ARM-Linux-EABIHF-7.0.0-RC1 $ ./bin32/drrun -debug -- ls -alh

<(1+x) Handling our fault in a TRY at 0x76de37e0>
total 96K

```

Got this when running DynamoRIO-ARM-Linux-EABIHF-7.0.0-RC1 on my raspberry pi. I'm not running on master due to #2799. Since I'm not on master the line numbers are going to be wrong, the relevant code is here (still NYI in master I believe):

```c
/* FIXME i#1551: NYI on case like "ldm r10, {r10, pc}": if base reg
* is clobbered, "ldr pc [base, disp]" will use wrong base value.
* It seems the only solution is load the target value first and store
* it into some TLS slot for later "ldr pc".
*/
ASSERT_NOT_IMPLEMENTED(!(write_pc && !writeback &&
/* base reg is in the reglist */
instr_writes_to_reg(instr, base, DR_QUERY_INCLUDE_ALL)));
```

I find it *very* odd that I've never hit this before on my ARM chromebook or on my pi a while back. This is just a standard raspbian lite installation:

```
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.1 (stretch)
Release: 9.1
Codename: stretch
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.