DynamoRIO / DynamoRIO/dynamorio
Segmentation fault when running any client on ARM-Arndale 5250
- 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
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