WebKit Bugzilla
Attachment 343756 Details for
Bug 187112
: Add some more register state information when we crash in repatchPutById
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
a-backup.diff (text/plain), 3.22 KB, created by
Saam Barati
on 2018-06-27 15:08:13 PDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Saam Barati
Created:
2018-06-27 15:08:13 PDT
Size:
3.22 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 233279) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,16 @@ >+2018-06-27 Saam Barati <sbarati@apple.com> >+ >+ Add a simulated crash to try to find why we're crashing in repatchPutById >+ https://bugs.webkit.org/show_bug.cgi?id=187112 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This will help us gather data when we end up seeing a ObjectPropertyConditionSet >+ with an offset that is different than what the put tells us. >+ >+ * jit/Repatch.cpp: >+ (JSC::tryCachePutByID): >+ > 2018-06-27 Keith Miller <keith_miller@apple.com> > > Add logging to try to diagnose where we get a null structure. >Index: Source/JavaScriptCore/jit/Repatch.cpp >=================================================================== >--- Source/JavaScriptCore/jit/Repatch.cpp (revision 233273) >+++ Source/JavaScriptCore/jit/Repatch.cpp (working copy) >@@ -63,8 +63,20 @@ > #include "ThunkGenerators.h" > #include <wtf/CommaPrinter.h> > #include <wtf/ListDump.h> >+#if PLATFORM(IOS) >+#include <wtf/SoftLinking.h> >+#endif > #include <wtf/StringPrintStream.h> > >+#if PLATFORM(IOS) >+namespace JSC { >+SOFT_LINK_PRIVATE_FRAMEWORK(CrashReporterSupport); >+} >+ >+SOFT_LINK_FUNCTION_FOR_HEADER(JSC, CrashReporterSupport, SimulateCrash, BOOL, (pid_t pid, mach_exception_data_type_t exceptionCode, CFStringRef description), (pid, exceptionCode, description)); >+SOFT_LINK_FUNCTION_FOR_SOURCE(JSC, CrashReporterSupport, SimulateCrash, BOOL, (pid_t pid, mach_exception_data_type_t exceptionCode, CFStringRef description), (pid, exceptionCode, description)); >+#endif >+ > namespace JSC { > > static FunctionPtr<CFunctionPtrTag> readPutICCallTarget(CodeBlock* codeBlock, CodeLocationCall<JSInternalPtrTag> call) >@@ -573,7 +585,22 @@ static InlineCacheAction tryCachePutByID > if (!conditionSet.isValid()) > return GiveUpOnCache; > >- RELEASE_ASSERT(offset == conditionSet.slotBaseCondition().offset()); >+ PropertyOffset conditionSetOffset = conditionSet.slotBaseCondition().offset(); >+#if PLATFORM(IOS) >+ if (offset != conditionSetOffset) { >+ const mach_exception_data_type_t kExceptionCode = 0xc105ca11; >+ StringPrintStream message; >+ message.printf("repatch put_by_id for id: %s, offsets do not match, offset=%d conditionSetOffset=%d -> ", String(ident.impl()).ascii().data(), offset, conditionSetOffset); >+ conditionSet.dump(message); >+ message.print("\n"); >+ CString string = message.toCString(); >+ CFStringRef description = CFStringCreateWithFormat(kCFAllocatorDefault, nullptr, CFSTR("%s"), string.data()); >+ softLink_CrashReporterSupport_SimulateCrash(getpid(), kExceptionCode, description); >+ CFRelease(description); >+ } >+#endif >+ >+ RELEASE_ASSERT(offset == conditionSetOffset); > } > > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
mark.lam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 187112
:
343756
|
343764