DynamoRIO / DynamoRIO/drmemory

Probably-false uninit reports on StackWalk64

Open
#567 7 comments 0 reactions 0 assignees View on GitHub
Bug-FalsePositive Migrated OpSys-Windows Priority-Low
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

_From [timurrrr@google.com](https://code.google.com/u/timurrrr@google.com/) on August 26, 2011 10:23:09_

As of r481 :
------------------------------
#include
#include
#pragma comment(lib, "dbghelp.lib")

#include
#include

long WINAPI SDEF(EXCEPTION_POINTERS *ep) {
STACKFRAME64 stack_frame;
memset(&stack_frame, 0, sizeof(stack_frame));
stack_frame.AddrPC.Offset = ep->ContextRecord->Eip;
stack_frame.AddrFrame.Offset = ep->ContextRecord->Ebp;
stack_frame.AddrStack.Offset = ep->ContextRecord->Esp;
stack_frame.AddrPC.Mode = AddrModeFlat;
stack_frame.AddrFrame.Mode = AddrModeFlat;
stack_frame.AddrStack.Mode = AddrModeFlat;
while (StackWalk64(IMAGE_FILE_MACHINE_I386, GetCurrentProcess(),
GetCurrentThread(), &stack_frame,
ep->ContextRecord, NULL,
&SymFunctionTableAccess64, &SymGetModuleBase64, NULL)) {
printf("Frame: 0x%08X\n", stack_frame.AddrPC.Offset);
}
return 1;
}

int main() {
SetUnhandledExceptionFilter(&SDEF);
throw std::exception("Woo");
}
------------------------------
Error `#1`: UNINITIALIZED READ: reading 0x0018ea2c-0x0018ea2d 1 byte(s)
@0:00:02.162 in thread 4972
Note: instruction: test 0xffffffb4(%ebp) $0x01
0x73f94c40 dbghelp.dll!SymFromAddrW
0x73f94916 dbghelp.dll!SymFromAddrW
0x73f94f0f dbghelp.dll!SymFromAddrW
0x73f965b1 dbghelp.dll!StackWalk64
0x73f964c8 dbghelp.dll!StackWalk64
0x004010e4 test.exe!SDEF
c:\sandbox\stackwalk\test.cpp:20

_Original issue: http://code.google.com/p/drmemory/issues/detail?id=567_

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.