DynamoRIO / DynamoRIO/dynamorio
ASSERT dispatch.c:755 get_syscall_method() == SYSCALL_METHOD_SYSENTER
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
Running an app with DR statically linked and using dr_app_start/dr_app_stop_and_cleanup I sometimes see this assert:
```
```
Getting the callstack of the rank order:
```
0x555557ae8eec : add $0x10,%rsp
0x555557b8117b : xor %eax,%eax
0x555557ad914f : mov %rax,-0x40(%rbp)
0x555557ad99c2 : mov -0x28(%rbp),%rax
0x555557acded7 :
lea 0x280d25a(%rip),%rax # 0x55555a2db138
0x555557ac62a3 : cmp $0x0,%al
0x555557bbbb93 : mov $0xf,%eax
0x555557aa0dc3 : add $0x20,%rsp
0x555557a87076 :
lea 0x28540bb(%rip),%rdx # 0x55555a2db138
0x555557a875bc : cmp $0x0,%al
0x555557aae715 : mov %al,-0x12(%rbp)
0x555557ab3875 : cmp $0x0,%al
0x555557aa1fd2 : movsbl %al,%r8d
0x555557aa20e8 : mov %al,-0x1(%rbp)
0x555557ae29de : movsbl %al,%edx
0x555557ae1fc9 : callq 0x555557b749d0
0x5555578177b4 :
jmpq 0x5555578177be
0x5555578162b9 :
lea 0x2c46a60(%rip),%rax # 0x55555a45cd20
0x55553558bf05: Cannot access memory at address 0x55553558bf05
0x555557665628
```
So it's reporting the assert above:
```
ASSERT(get_syscall_method() == SYSCALL_METHOD_SYSENTER);
```
Getting the wherewasi value:
```
wherewasi=2 last-tag=0x0000000000000000
```
2==DR_WHERE_DISPATCH
Some have non-NULL last_fragment->tag but it's just some app bb ending in
cbr: nothing unusual.
So the issue is, how did it get to dispatch from dispatch?
Contributor guide
Assessment
This issue has not been assessed yet.