DynamoRIO / DynamoRIO/dynamorio

Segmentation fault when running any client on ARM-Arndale 5250

Open
#2,321 0 comments 0 reactions 0 assignees View on GitHub
Bug-AppCrash OpSys-ARM
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

When using DynamoRIO on Arndale 5250 board based on ARM Cortex A-15, client terminates with a segmentation fault. My kernel is Linux Linaro 3.12.
I used the pre-built package "DynamoRIO-ARM-Linux-EABIHF-7.0.0-RC1".

After deployment to the board i ran:
```
% bin32/drrun -c samples/bin32/libinscount.so -- ls
which resulted in:
root@linaro-server:/home/DynamoRIO-ARM-Linux-EABIHF-7.0.0-RC1# ./bin32/drrun -c ./samples/bin32/libinscount.so -- ls
Client inscount is running
Segmentation fault
```
----------------------------------------------------------------
The result with GDB to find out the reason for seg fault:
```
(gdb) r -c ./samples/bin32/libinscount.so -- ls
Starting program: /home/DynamoRIO-ARM-Linux-EABIHF-7.0.0-RC1/bin32/drrun -c ./samples/bin32/libinscount.so -- ls
process 2195 is executing new program: /home/DynamoRIO-ARM-Linux-EABIHF-7.0.0-RC1/lib32/release/libdynamorio.so

Program received signal SIGSEGV, Segmentation fault.
0x54b73a58 in safe_read_asm_pre ()
(gdb) c
Continuing.
Client inscount is running

Program received signal SIGSEGV, Segmentation fault.
0x55e78000 in ?? ()
(gdb) bt
#0 0x55e78000 in ?? ()
#1 0x00000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x54b582c2 in read_instruction (di=0x55ee25a8, ret_info=,
orig_pc=0x55e78000 "", pc=, dcontext=0x55e89040)
at /dynamorio_package/core/arch/arm/decode.c:2314
2314 /dynamorio_package/core/arch/arm/decode.c: No such file or directory.
(gdb)
```
-------------------------------------------------------------------------------------------------------------
The rest of the information is available at:
https://groups.google.com/forum/#!topic/dynamorio-users/GQnrvlae9lc

Contributor guide

Open the contributing guide

Research direction

Reproduce the bin32/drrun command on the ARM-Arndale board under GDB, then inspect core/arch/arm/decode.c at read_instruction line 2314 and the safe_read_asm_pre failure shown in the trace. Done means the sample client and ls run without a segmentation fault on the reported Linux Linaro 3.12 setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
devtools, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.