This is a fix for a stackwalker_x86 issue which has to
do with FPO (frame-pointer-omission) optimized context frames where the context frame represents a Windows System call stub. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@971 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
c50346b341
commit
1208a8e369
8 changed files with 547 additions and 294 deletions
|
@ -200,6 +200,7 @@ TEST_F(TestBasicSourceLineResolver, TestLoadAndResolve)
|
|||
ASSERT_EQ(frame.source_line_base, 0x1000);
|
||||
windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
|
||||
ASSERT_TRUE(windows_frame_info.get());
|
||||
ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
|
||||
ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
|
||||
ASSERT_EQ(windows_frame_info->program_string,
|
||||
"$eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ =");
|
||||
|
@ -219,6 +220,7 @@ TEST_F(TestBasicSourceLineResolver, TestLoadAndResolve)
|
|||
ASSERT_EQ(frame.source_line, 0);
|
||||
windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
|
||||
ASSERT_TRUE(windows_frame_info.get());
|
||||
ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_UNKNOWN);
|
||||
ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
|
||||
ASSERT_TRUE(windows_frame_info->program_string.empty());
|
||||
|
||||
|
@ -228,6 +230,7 @@ TEST_F(TestBasicSourceLineResolver, TestLoadAndResolve)
|
|||
ASSERT_TRUE(frame.source_file_name.empty());
|
||||
ASSERT_EQ(frame.source_line, 0);
|
||||
windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
|
||||
ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
|
||||
ASSERT_TRUE(windows_frame_info.get());
|
||||
ASSERT_FALSE(windows_frame_info->allocates_base_pointer);
|
||||
ASSERT_FALSE(windows_frame_info->program_string.empty());
|
||||
|
@ -351,6 +354,7 @@ TEST_F(TestBasicSourceLineResolver, TestLoadAndResolve)
|
|||
ASSERT_EQ(frame.source_line_base, 0x2180);
|
||||
windows_frame_info.reset(resolver.FindWindowsFrameInfo(&frame));
|
||||
ASSERT_TRUE(windows_frame_info.get());
|
||||
ASSERT_EQ(windows_frame_info->type_, WindowsFrameInfo::STACK_INFO_FRAME_DATA);
|
||||
ASSERT_EQ(windows_frame_info->prolog_size, 1);
|
||||
|
||||
frame.instruction = 0x216f;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue