| Index: src/gdb-jit.cc
|
| diff --git a/src/gdb-jit.cc b/src/gdb-jit.cc
|
| index 88a9939722603c1b864eff4aa5d9ba84fd673be6..5136deddbf7e4aa4713cd32207b51b6c254d6c46 100644
|
| --- a/src/gdb-jit.cc
|
| +++ b/src/gdb-jit.cc
|
| @@ -1411,9 +1411,8 @@ static void AddUnwindInfo(CodeDescription *desc) {
|
| #ifdef V8_TARGET_ARCH_X64
|
| if (desc->tag() == GDBJITInterface::FUNCTION) {
|
| // To avoid propagating unwinding information through
|
| - // compilation pipeline we rely on function prologue
|
| - // and epilogue being the same for all code objects generated
|
| - // by the full code generator.
|
| + // compilation pipeline we use an approximation.
|
| + // For most use cases this should not affect usability.
|
| static const int kFramePointerPushOffset = 1;
|
| static const int kFramePointerSetOffset = 4;
|
| static const int kFramePointerPopOffset = -3;
|
| @@ -1427,19 +1426,6 @@ static void AddUnwindInfo(CodeDescription *desc) {
|
| uintptr_t frame_pointer_pop_address =
|
| desc->CodeEnd() + kFramePointerPopOffset;
|
|
|
| -#ifdef DEBUG
|
| - static const uint8_t kFramePointerPushInstruction = 0x48; // push ebp
|
| - static const uint16_t kFramePointerSetInstruction = 0x5756; // mov ebp, esp
|
| - static const uint8_t kFramePointerPopInstruction = 0xBE; // pop ebp
|
| -
|
| - ASSERT(*reinterpret_cast<uint8_t*>(frame_pointer_push_address) ==
|
| - kFramePointerPushInstruction);
|
| - ASSERT(*reinterpret_cast<uint16_t*>(frame_pointer_set_address) ==
|
| - kFramePointerSetInstruction);
|
| - ASSERT(*reinterpret_cast<uint8_t*>(frame_pointer_pop_address) ==
|
| - kFramePointerPopInstruction);
|
| -#endif
|
| -
|
| desc->SetStackStateStartAddress(CodeDescription::POST_RBP_PUSH,
|
| frame_pointer_push_address);
|
| desc->SetStackStateStartAddress(CodeDescription::POST_RBP_SET,
|
|
|