DynamoRIO / DynamoRIO/dynamorio

Aarchxx: ASSERT not implemented. arm-32 bit normalize_ldm_instr

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

Description

Hey together,

in the discussion [instrumentalize external module](https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/dynamorio-users/a8T5bmoTlP8/nddpyu41AgAJ) we found out that a part in the `normalize_ldm_instr()` in `dynamorio/core/arch/archxx/mangle.c` is not implemented.

When I run dynamorio with my binary, a GEMM I created with the code generation tool TVM, it crashes when the program (gemm-run-on-pi-wo-pack) tries to load the external libraries (gemm6.so) and (libtvm_runtime.so). For the case someone want to reproduce the exact same situation, I have attached the binaries.

The debug command
` drrun -debug -- ./gemm-run-on-pi-wo-pack`
gives a hint what happens:
```

<(1+x) Handling our fault in a TRY at 0x76d928fc>
[
```

Looking at this position in the code we see the comment that something is not yet implemented.

The target platform is a Raspberry Pi 3B+ Compute Module (BCM2837 ARMv8). Its an ARM 32-bit device running a `Raspbian GNU/Linux 9 (stretch)` as operating system with Linux kernel 4.9.76.

I work with the dynamorio commit 5fa9faec4af5b95413f625884f08c60bebc5b8d8 which is the current head on June 30th.

Does anyone know about this not implemented part? How much effort do you think it is to add the missing code?

Many thanks to @johnfxgalea and @derekbruening to get so far.

[gemm-bin-dynamorio-issue.zip](https://github.com/DynamoRIO/dynamorio/files/4864209/gemm-bin-dynamorio-issue.zip)

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.