bang590 / JSPatch

JSPatch bridge Objective-C and Javascript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine. JSPatch is generally used to hotfix iOS App.
MIT License
11.36k stars 2.24k forks source link

JPForwardInvocation崩溃 #188

Open various opened 8 years ago

various commented 8 years ago

集成后在JPForwardInvocation崩溃了,具体是这行 [forwardInv invoke]; 在 NSString *selectorName = NSStringFromSelector(invocation.selector);断点跟踪selectorName 是loadview,求回复。谢谢

bang590 commented 8 years ago

你给的信息太少了

various commented 8 years ago

你好,就是我如果给viewcontroller热修复的话,必须在viewcontroller里面加上

various commented 8 years ago

只有给viewcontroller打热补丁会这样,给uiview的子类并不会崩溃。

bang590 commented 8 years ago

有没有用RAC?

various commented 8 years ago

项目中也没有用到rac。

wusuowei commented 8 years ago

使用了aspects的情况怎么解决

zyqhi commented 7 years ago

@bang590 我们项目也出现了同样的崩溃(非必现),我们使用了RAC,请问对崩溃的原因有头绪吗?

Crashed: com.apple.main-thread
0  JavaScriptCore                 0x187f03424 bmalloc::VMHeap::allocateSmallChunk(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long) + 700
1  JavaScriptCore                 0x187f03424 bmalloc::VMHeap::allocateSmallChunk(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long) + 700
2  JavaScriptCore                 0x187f018bc bmalloc::Heap::allocateSmallPage(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long) + 156
3  JavaScriptCore                 0x187f01ae8 bmalloc::Heap::allocateSmallBumpRangesByMetadata(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long, bmalloc::BumpAllocator&, bmalloc::FixedVector<bmalloc::BumpRange, 3ul>&) + 36
4  JavaScriptCore                 0x187f004f4 bmalloc::Allocator::refillAllocatorSlowCase(bmalloc::BumpAllocator&, unsigned long) + 140
5  JavaScriptCore                 0x187f00718 bmalloc::Allocator::allocateSlowCase(unsigned long) + 196
6  JavaScriptCore                 0x18762ad84 WTF::StringImpl::create(unsigned char const*, unsigned int) + 60
7  JavaScriptCore                 0x18762b34c WTF::String::String(unsigned char const*, unsigned int) + 48
8  JavaScriptCore                 0x187ccb5dc JSStringCreateWithCFString + 208
9  JavaScriptCore                 0x187cff7ac objectToValue(JSContext*, objc_object*) + 552
10 JavaScriptCore                 0x187d014cc -[JSValue callWithArguments:] + 164
11 NeteaseYanxuan                 0x1004a6564 JPForwardInvocation (JPEngine.m:869)
12 CoreFoundation                 0x183729070 ___forwarding___ + 404
13 CoreFoundation                 0x18362280c _CF_forwarding_prep_0 + 92
14 NeteaseYanxuan                 0x1000d4cb0 __50-[XXDetailLimitedTimeView initWithFrame:]_block_invoke.17 (XXDetailLimitedTimeView.m:54)
15 NeteaseYanxuan                 0x1006ab72c -[RACSubscriber sendNext:] (RACSubscriber.m:74)
16 NeteaseYanxuan                 0x10068f8cc -[RACPassthroughSubscriber sendNext:] (RACPassthroughSubscriber.m:74)
17 NeteaseYanxuan                 0x1006ab72c -[RACSubscriber sendNext:] (RACSubscriber.m:74)
18 NeteaseYanxuan                 0x1006913b4 __29-[RACReturnSignal subscribe:]_block_invoke (RACReturnSignal.m:85)
19 NeteaseYanxuan                 0x1006abd84 -[RACSubscriptionScheduler schedule:] (RACSubscriptionScheduler.m:40)
20 NeteaseYanxuan                 0x10069132c -[RACReturnSignal subscribe:] (RACReturnSignal.m:84)
21 NeteaseYanxuan                 0x1006a6360 -[RACSignal(Subscription) subscribeNext:error:completed:] (RACSignal.m:299)
22 NeteaseYanxuan                 0x1006a4968 __29-[RACSignal(RACStream) bind:]_block_invoke.76 (RACSignal.m:139)
23 NeteaseYanxuan                 0x1006a4c54 __29-[RACSignal(RACStream) bind:]_block_invoke.113 (RACSignal.m:163)
24 NeteaseYanxuan                 0x1006ab72c -[RACSubscriber sendNext:] (RACSubscriber.m:74)
25 NeteaseYanxuan                 0x10068f8cc -[RACPassthroughSubscriber sendNext:] (RACPassthroughSubscriber.m:74)
26 NeteaseYanxuan                 0x1006839f0 __84-[NSObject(RACPropertySubscribing) rac_valuesAndChangesForKeyPath:options:observer:]_block_invoke_2 (NSObject+RACPropertySubscribing.m:49)
27 NeteaseYanxuan                 0x100682588 __69-[NSObject(RACKVOWrapper) rac_observeKeyPath:options:observer:block:]_block_invoke.68 (NSObject+RACKVOWrapper.m:170)
28 NeteaseYanxuan                 0x10068eec0 -[RACKVOTrampoline observeValueForKeyPath:ofObject:change:context:] (RACKVOTrampoline.m:98)
29 Foundation                     0x18414a234 NSKeyValueNotifyObserver + 304
30 Foundation                     0x184149d54 NSKeyValueDidChange + 404
31 Foundation                     0x184201224 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] + 780
32 Foundation                     0x184149220 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 64
33 Foundation                     0x1841fe694 _NSSetLongLongValueAndNotify + 268
34 NeteaseYanxuan                 0x1002712d4 -[XXDetailViewController updateTime] (XXDetailViewController.m:1275)
35 Foundation                     0x18423a2e4 __NSFireTimer + 88
36 CoreFoundation                 0x1836d31d8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
37 CoreFoundation                 0x1836d2eec __CFRunLoopDoTimer + 872
38 CoreFoundation                 0x1836d27a8 __CFRunLoopDoTimers + 244
39 CoreFoundation                 0x1836d03a4 __CFRunLoopRun + 1572
40 CoreFoundation                 0x1835fe2b8 CFRunLoopRunSpecific + 444
41 GraphicsServices               0x1850b2198 GSEventRunModal + 180
42 UIKit                          0x1896457fc -[UIApplication _run] + 684
43 UIKit                          0x189640534 UIApplicationMain + 208
44 NeteaseYanxuan                 0x100318754 main (main.m:14)
45 libdispatch.dylib              0x1825e15b8 (Missing)