Changeset 216827 in webkit for trunk/Source/JavaScriptCore/runtime/VMTraps.cpp
- Timestamp:
- May 13, 2017, 1:32:59 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/VMTraps.cpp
r216808 r216827 54 54 55 55 struct SignalContext { 56 SignalContext( PlatformRegisters& registers)57 : registers(registers)58 , trapPC(MachineContext::instructionPointer( registers))59 , stackPointer(MachineContext::stackPointer( registers))60 , framePointer(MachineContext::framePointer( registers))56 SignalContext(mcontext_t& mcontext) 57 : mcontext(mcontext) 58 , trapPC(MachineContext::instructionPointer(mcontext)) 59 , stackPointer(MachineContext::stackPointer(mcontext)) 60 , framePointer(MachineContext::framePointer(mcontext)) 61 61 { 62 62 #if CPU(X86_64) || CPU(X86) … … 69 69 { 70 70 #if CPU(X86_64) || CPU(X86) 71 MachineContext::instructionPointer( registers) = trapPC;72 #endif 73 } 74 75 PlatformRegisters& registers;71 MachineContext::instructionPointer(mcontext) = trapPC; 72 #endif 73 } 74 75 mcontext_t& mcontext; 76 76 void* trapPC; 77 77 void* stackPointer; … … 131 131 static void installSignalHandler() 132 132 { 133 installSignalHandler(Signal::Trap, [] ( Signal, SigInfo&, PlatformRegisters& registers) -> SignalAction {134 SignalContext context( registers);133 installSignalHandler(Signal::Trap, [] (int, siginfo_t*, void* uap) -> SignalAction { 134 SignalContext context(static_cast<ucontext_t*>(uap)->uc_mcontext); 135 135 136 136 if (!isJITPC(context.trapPC)) … … 405 405 auto optionalOwnerThread = vm.ownerThread(); 406 406 if (optionalOwnerThread) { 407 sendMessage(*optionalOwnerThread.value().get(), [] ( PlatformRegisters& registers) -> void {408 SignalContext context( registers);407 sendMessage(*optionalOwnerThread.value().get(), [] (siginfo_t*, ucontext_t* ucontext) -> void { 408 SignalContext context(ucontext->uc_mcontext); 409 409 auto activeVMAndStackBounds = findActiveVMAndStackBounds(context); 410 410 if (activeVMAndStackBounds) {
Note:
See TracChangeset
for help on using the changeset viewer.