DynamoRIO / DynamoRIO/drmemory
linux stack new page causes entire stack to be marked defined?
- Dominant language
- C
- Stars
- 2.7k
- Forks
- 290
- PR merge metrics
- No merged PRs in 30d
Description
_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on June 03, 2011 15:49:17_
when stack is extended beyond original maps entry are we marking as defined
b/c it's an unknown region? I thought I had filed and/or fixed something
related to this in the past but I can't find it.
that seems to be what I see in spec2k6 sphinx3. this is w/
-no_check_uninitialized w/o -check_stack_bounds so here we do want the
mark-defined for the new part, but we don't for -check_uninitialized -- and
worse here it marks the ENTIRE STACK as defined even though most of it was
already known!
SIGSEGV @0x1692d544 (xl8=>0xf7521f1a) accessing 0x0000ffc1
write fault slowpath @0x0000ffc1
faulting cache instr:
0x1692d544 8b 00 mov (%eax) -> %eax
original app instr:
0xf7521f1a 8b 31 mov (%ecx) -> %esi
considering potential restore instr: mov (%ecx) -> %esi
considering emulated target read 0xffc1d73c vs fault 0x0000ffc1
slow_path 0xf7521f1a: mov (%ecx) -> %esi
memref: read @0xf7521f1a 0xffc1d73c 0x4 bytes (pre-dword 0x01 0x01) (was special)
WARNING: unknown region 0xffc1d000-0xffc42000: marking as defined
set range 0xffc1d000-0xffc42000 => 0x0
replacing shadow special 0x1687c200 block for write @0xffc1d000 0
setting shadow table idx 65473 for block 0x168f7b0c to 0xd69f3b0c
memset 0xffc1d004-0xffc20000
memset 0xffc20000-0xffc30000
setting shadow table idx 65475 for block 0x1688c200 to 0xd6980200
memset 0xffc40000-0xffc42000
unaddr exception for 0xffc1d73c
maps entry:
ffc1d000-ffc42000 rw-p 00000000 00:00 0 [stack]
_Original issue: http://code.google.com/p/drmemory/issues/detail?id=443_
Contributor guide
Assessment
This issue has not been assessed yet.