Changeset 217638 in webkit for trunk/Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp
- Timestamp:
- May 31, 2017, 4:25:04 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp
r217611 r217638 79 79 80 80 struct SignalContext { 81 SignalContext( PlatformRegisters& registers)82 : registers(registers)83 , machinePC(MachineContext::instructionPointer( registers))84 , stackPointer(MachineContext::stackPointer( registers))85 , framePointer(MachineContext::framePointer( registers))81 SignalContext(mcontext_t& mcontext) 82 : mcontext(mcontext) 83 , machinePC(MachineContext::instructionPointer(mcontext)) 84 , stackPointer(MachineContext::stackPointer(mcontext)) 85 , framePointer(MachineContext::framePointer(mcontext)) 86 86 { } 87 87 … … 113 113 114 114 #define DUMP_REGISTER(__reg) \ 115 log("Register " #__reg ": %p", reinterpret_cast<void*>( registers.__##__reg));115 log("Register " #__reg ": %p", reinterpret_cast<void*>(mcontext->__ss.__##__reg)); 116 116 FOR_EACH_REGISTER(DUMP_REGISTER) 117 117 #undef FOR_EACH_REGISTER … … 121 121 for (i = 0; i < 28; i += 4) { 122 122 log("x%d: %016llx x%d: %016llx x%d: %016llx x%d: %016llx", 123 i, registers.__x[i],124 i+1, registers.__x[i+1],125 i+2, registers.__x[i+2],126 i+3, registers.__x[i+3]);123 i, mcontext->__ss.__x[i], 124 i+1, mcontext->__ss.__x[i+1], 125 i+2, mcontext->__ss.__x[i+2], 126 i+3, mcontext->__ss.__x[i+3]); 127 127 } 128 128 ASSERT(i < 29); 129 129 log("x%d: %016llx fp: %016llx lr: %016llx", 130 i, registers.__x[i], registers.__fp, registers.__lr);130 i, mcontext->__ss.__x[i], mcontext->__ss.__fp, mcontext->__ss.__lr); 131 131 log("sp: %016llx pc: %016llx cpsr: %08x", 132 registers.__sp, registers.__pc, registers.__cpsr);132 mcontext->__ss.__sp, mcontext->__ss.__pc, mcontext->__ss.__cpsr); 133 133 #endif 134 134 } 135 135 136 PlatformRegisters& registers;136 mcontext_t& mcontext; 137 137 void* machinePC; 138 138 void* stackPointer; … … 143 143 { 144 144 #if CPU(X86_64) || CPU(ARM64) 145 installSignalHandler(Signal::Ill, [] ( Signal, SigInfo&, PlatformRegisters& registers) {146 SignalContext context( registers);145 installSignalHandler(Signal::Ill, [] (int, siginfo_t*, void* uap) { 146 SignalContext context(static_cast<ucontext_t*>(uap)->uc_mcontext); 147 147 148 148 if (!isJITPC(context.machinePC))
Note:
See TracChangeset
for help on using the changeset viewer.