diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc index 424cf4c4..94b66334 100644 --- a/src/processor/stackwalker.cc +++ b/src/processor/stackwalker.cc @@ -58,7 +58,7 @@ namespace google_breakpad { -const int Stackwalker::kRASearchWords = 30; +const int Stackwalker::kRASearchWords = 40; uint32_t Stackwalker::max_frames_ = 1024; bool Stackwalker::max_frames_set_ = false; diff --git a/src/processor/stackwalker_arm64_unittest.cc b/src/processor/stackwalker_arm64_unittest.cc index dd617f69..f9d18cea 100644 --- a/src/processor/stackwalker_arm64_unittest.cc +++ b/src/processor/stackwalker_arm64_unittest.cc @@ -349,7 +349,7 @@ TEST_F(GetCallerFrame, ScanFirstFrame) { .D64(0xF0000000) // more junk .D64(0x0000000D) - .Append(256, 0) // more space + .Append(336, 0) // more space .D64(return_address2) // actual return address // (won't be found) diff --git a/src/processor/stackwalker_arm_unittest.cc b/src/processor/stackwalker_arm_unittest.cc index c73322e6..8a0fd5e9 100644 --- a/src/processor/stackwalker_arm_unittest.cc +++ b/src/processor/stackwalker_arm_unittest.cc @@ -370,7 +370,7 @@ TEST_F(GetCallerFrame, ScanFirstFrame) { .D32(0xF0000000) // more junk .D32(0x0000000D) - .Append(96, 0) // more space + .Append(136, 0) // more space .D32(return_address2) // actual return address // (won't be found) diff --git a/src/processor/stackwalker_x86_unittest.cc b/src/processor/stackwalker_x86_unittest.cc index 008b496b..d4c61c8c 100644 --- a/src/processor/stackwalker_x86_unittest.cc +++ b/src/processor/stackwalker_x86_unittest.cc @@ -1228,9 +1228,9 @@ TEST_F(GetCallerFrame, WindowsFPOSystemCall) { // Scan the stack for a better return address and potentially skip frames // when the calculated return address is not in a known module. Note, that -// the span of this scan is somewhat arbitrarily limited to 120 search words -// for the context frame and 30 search words (pointers) for the other frames: -// const int kRASearchWords = 30; +// the span of this scan is somewhat arbitrarily limited to 160 search words +// for the context frame and 40 search words (pointers) for the other frames: +// const int kRASearchWords = 40; // This means that frames can be skipped only when their size is relatively // small: smaller than 4 * kRASearchWords * sizeof(InstructionType) TEST_F(GetCallerFrame, ReturnAddressIsNotInKnownModule) {