stasel / WebRTC

Unofficial distribution of up to date WebRTC framework binaries for iOS and macOS
Other
359 stars 76 forks source link

Instant Crash before loading the application with Version 102 #36

Closed gurhub closed 2 years ago

gurhub commented 2 years ago

Hello again,

I believe this is not related to this repository but just for reference, I'm opening this issue. I was using version 96 in my application. There was no problem at all. After updating SPM to version 102, I started to receive this issue before loading the application. I try to use it without SPM, just tried to download it from a zip file from URL https://github.com/stasel/WebRTC/releases/download/102.0.0/WebRTC-M102.xcframework.zip. The result was the same.

I don't have time to go deeper, so that's why I go back to version 96.

Here is the full error message on Xcode

Thread 1: EXC_BAD_ACCESS (code=1, address=0x631)

WebRTC_lldb_unnamed_symbol12674$$WebRTC: 0x1070d5df8 <+0>: stp x20, x19, [sp, #-0x20]! 0x1070d5dfc <+4>: stp x29, x30, [sp, #0x10] 0x1070d5e00 <+8>: add x29, sp, #0x10 0x1070d5e04 <+12>: bl 0x1075bf71c ; symbol stub for: objc_autoreleasePoolPush 0x1070d5e08 <+16>: mov x19, x0 0x1070d5e0c <+20>: adrp x8, 1646 0x1070d5e10 <+24>: ldr x0, [x8, #0x418] 0x1070d5e14 <+28>: adrp x8, 1645 0x1070d5e18 <+32>: ldr x1, [x8, #0x28] 0x1070d5e1c <+36>: adrp x2, 1289 0x1070d5e20 <+40>: add x2, x2, #0xd7d ; kRTCAudioSessionLowComplexityIOBufferDuration + 86893 0x1070d5e24 <+44>: bl 0x1075bf7ac ; symbol stub for: objc_msgSend 0x1070d5e28 <+48>: mov x29, x29 0x1070d5e2c <+52>: bl 0x1075bf7f4 ; symbol stub for: objcretainAutoreleasedReturnValue 0x1070d5e30 <+56>: adrp x8, 1736 0x1070d5e34 <+60>: str x0, [x8, #0x620] 0x1070d5e38 <+64>: mov w0, #0x3 0x1070d5e3c <+68>: bl 0x1070d5d24 ; lldb_unnamed_symbol12671$$WebRTC 0x1070d5e40 <+72>: mov x29, x29 0x1070d5e44 <+76>: bl 0x1075bf7f4 ; symbol stub for: objc_retainAutoreleasedReturnValue 0x1070d5e48 <+80>: adrp x8, 1622 0x1070d5e4c <+84>: add x8, x8, #0x820 ; @"640c1f" 0x1070d5e50 <+88>: cmp x0, #0x0 0x1070d5e54 <+92>: csel x8, x8, x0, eq 0x1070d5e58 <+96>: adrp x9, 1736 0x1070d5e5c <+100>: str x8, [x9, #0x628] 0x1070d5e60 <+104>: mov w0, #0x0 0x1070d5e64 <+108>: bl 0x1070d5d24 ; ___lldb_unnamed_symbol12671$$WebRTC 0x1070d5e68 <+112>: mov x29, x29 0x1070d5e6c <+116>: bl 0x1075bf7f4 ; symbol stub for: objc_retainAutoreleasedReturnValue 0x1070d5e70 <+120>: adrp x8, 1622 0x1070d5e74 <+124>: add x8, x8, #0x840 ; @"42e01f" 0x1070d5e78 <+128>: cmp x0, #0x0 0x1070d5e7c <+132>: csel x8, x8, x0, eq 0x1070d5e80 <+136>: nop
-> 0x1070d5e84 <+140>: str x8, [x9, #0x630] 0x1070d5e88 <+144>: mov x0, x19 0x1070d5e8c <+148>: ldp x29, x30, [sp, #0x10] 0x1070d5e90 <+152>: ldp x20, x19, [sp], #0x20 0x1070d5e94 <+156>: b 0x1075bf710 ; symbol stub for: objc_autoreleasePoolPop `

dyld start

0x106be9adc <+0>:   pacibsp 
0x106be9ae0 <+4>:   sub    sp, sp, #0x150
0x106be9ae4 <+8>:   stp    x22, x21, [sp, #0x120]
0x106be9ae8 <+12>:  stp    x20, x19, [sp, #0x130]
0x106be9aec <+16>:  stp    x29, x30, [sp, #0x140]
0x106be9af0 <+20>:  add    x29, sp, #0x140
0x106be9af4 <+24>:  mov    x20, x0
0x106be9af8 <+28>:  stp    xzr, xzr, [sp]
0x106be9afc <+32>:  mov    w0, #0x34
0x106be9b00 <+36>:  movk   w0, #0x1f07, lsl #16
0x106be9b04 <+40>:  mov    x1, #0x0
0x106be9b08 <+44>:  mov    x2, #0x0
0x106be9b0c <+48>:  mov    x3, #0x0
0x106be9b10 <+52>:  mov    x4, #0x0
0x106be9b14 <+56>:  mov    x5, #0x0
0x106be9b18 <+60>:  mov    x6, #0x0
0x106be9b1c <+64>:  bl     0x106bd3614               ; dyld3::kdebug_trace_dyld_marker(unsigned int, dyld3::kt_arg, dyld3::kt_arg, dyld3::kt_arg, dyld3::kt_arg)
0x106be9b20 <+68>:  adrp   x19, -25
0x106be9b24 <+72>:  add    x19, x19, #0x0
0x106be9b28 <+76>:  mov    x0, x19
0x106be9b2c <+80>:  bl     0x106bd3200               ; dyld3::MachOFile::hasChainedFixups() const
0x106be9b30 <+84>:  tbz    w0, #0x0, 0x106be9d10     ; <+564>
0x106be9b34 <+88>:  sub    x21, x29, #0x50
0x106be9b38 <+92>:  stp    xzr, x21, [x29, #-0x50]
0x106be9b3c <+96>:  adrp   x8, 53
0x106be9b40 <+100>: ldr    d0, [x8, #0x418]
0x106be9b44 <+104>: stur   d0, [x29, #-0x40]
0x106be9b48 <+108>: add    x8, x21, #0x18
0x106be9b4c <+112>: adrp   x16, 1
0x106be9b50 <+116>: add    x16, x16, #0xaf4          ; __Block_byref_object_copy_
0x106be9b54 <+120>: pacia  x16, x8
0x106be9b58 <+124>: stur   x16, [x29, #-0x38]
0x106be9b5c <+128>: add    x8, x21, #0x20
0x106be9b60 <+132>: adrp   x16, 1
0x106be9b64 <+136>: add    x16, x16, #0xb00          ; __Block_byref_object_dispose_
0x106be9b68 <+140>: pacia  x16, x8
0x106be9b6c <+144>: stur   x16, [x29, #-0x30]
0x106be9b70 <+148>: add    x0, x21, #0x28
0x106be9b74 <+152>: mov    w1, #0x0
0x106be9b78 <+156>: bl     0x106bd19b0               ; Diagnostics::Diagnostics(bool)
0x106be9b7c <+160>: ldur   x8, [x29, #-0x48]
0x106be9b80 <+164>: add    x1, x8, #0x28
0x106be9b84 <+168>: sub    x8, x29, #0x88
0x106be9b88 <+172>: adrp   x16, 83
0x106be9b8c <+176>: add    x16, x16, #0x310          ; _NSConcreteStackBlock
0x106be9b90 <+180>: mov    x17, x8
0x106be9b94 <+184>: movk   x17, #0x6ae1, lsl #48
0x106be9b98 <+188>: pacda  x16, x17
0x106be9b9c <+192>: stur   x16, [x29, #-0x88]
0x106be9ba0 <+196>: adrp   x9, 53
0x106be9ba4 <+200>: ldr    d0, [x9, #0x420]
0x106be9ba8 <+204>: stur   d0, [x29, #-0x80]
0x106be9bac <+208>: add    x8, x8, #0x10
0x106be9bb0 <+212>: adrp   x16, 1
0x106be9bb4 <+216>: add    x16, x16, #0xb08          ; __start_block_invoke
0x106be9bb8 <+220>: pacia  x16, x8
0x106be9bbc <+224>: adrp   x8, 63
0x106be9bc0 <+228>: add    x8, x8, #0x1d0            ; __block_descriptor_tmp
0x106be9bc4 <+232>: stp    x16, x8, [x29, #-0x78]
0x106be9bc8 <+236>: stp    x21, x19, [x29, #-0x68]
0x106be9bcc <+240>: stur   x19, [x29, #-0x58]
0x106be9bd0 <+244>: sub    x3, x29, #0x88
0x106be9bd4 <+248>: mov    x0, x19
0x106be9bd8 <+252>: mov    x2, #0x0
0x106be9bdc <+256>: bl     0x106bd32b4               ; dyld3::MachOAnalyzer::withChainStarts(Diagnostics&, unsigned long long, void (dyld_chained_starts_in_image const*) block_pointer) const
0x106be9be0 <+260>: ldur   x8, [x29, #-0x48]
0x106be9be4 <+264>: add    x0, x8, #0x28
0x106be9be8 <+268>: bl     0x106bd7220               ; Diagnostics::assertNoError() const
0x106be9bec <+272>: bl     0x106be2990               ; mach_init
0x106be9bf0 <+276>: mov    x0, x20
0x106be9bf4 <+280>: bl     0x106bec074               ; dyld4::KernelArgs::findApple() const
0x106be9bf8 <+284>: bl     0x106c052d4               ; __guard_setup
0x106be9bfc <+288>: mov    x0, x20
0x106be9c00 <+292>: bl     0x106bec074               ; dyld4::KernelArgs::findApple() const
0x106be9c04 <+296>: bl     0x106c12604               ; _subsystem_init
0x106be9c08 <+300>: adrp   x21, 63
0x106be9c0c <+304>: add    x21, x21, #0x70           ; dyld4::sConfigBuffer
0x106be9c10 <+308>: adrp   x2, 83
0x106be9c14 <+312>: add    x2, x2, #0x300            ; dyld4::sSyscallDelegate
0x106be9c18 <+316>: mov    x0, x21
0x106be9c1c <+320>: mov    x1, x20
0x106be9c20 <+324>: bl     0x106bec130               ; dyld4::ProcessConfig::ProcessConfig(dyld4::KernelArgs const*, dyld4::SyscallDelegate&)
0x106be9c24 <+328>: add    x8, sp, #0x90
0x106be9c28 <+332>: adrp   x16, 83
0x106be9c2c <+336>: add    x16, x16, #0x310          ; _NSConcreteStackBlock
0x106be9c30 <+340>: mov    x17, x8
0x106be9c34 <+344>: movk   x17, #0x6ae1, lsl #48
0x106be9c38 <+348>: pacda  x16, x17
0x106be9c3c <+352>: str    x16, [sp, #0x90]
0x106be9c40 <+356>: adrp   x9, 53
0x106be9c44 <+360>: ldr    d0, [x9, #0x428]
0x106be9c48 <+364>: str    d0, [sp, #0x98]
0x106be9c4c <+368>: add    x8, x8, #0x10
0x106be9c50 <+372>: adrp   x16, 1
0x106be9c54 <+376>: add    x16, x16, #0xb50          ; __start_block_invoke.3
0x106be9c58 <+380>: pacia  x16, x8
0x106be9c5c <+384>: adrp   x8, 63
0x106be9c60 <+388>: add    x8, x8, #0x200            ; __block_descriptor_tmp.5
0x106be9c64 <+392>: stp    x16, x8, [sp, #0xa0]
0x106be9c68 <+396>: str    x19, [sp, #0xb0]
0x106be9c6c <+400>: add    x1, sp, #0x90
0x106be9c70 <+404>: mov    x0, x19
0x106be9c74 <+408>: bl     0x106bd9ea0               ; dyld3::MachOFile::forEachSegment(void (dyld3::MachOFile::SegmentInfo const&, bool&) block_pointer) const
0x106be9c78 <+412>: movi.2d v0, #0000000000000000
0x106be9c7c <+416>: stp    q0, q0, [sp, #0x10]
0x106be9c80 <+420>: adrp   x8, 66
0x106be9c84 <+424>: add    x8, x8, #0xbb8            ; _os_lock_type_unfair
0x106be9c88 <+428>: str    x8, [sp, #0x30]
0x106be9c8c <+432>: adrp   x8, 53
0x106be9c90 <+436>: ldr    q1, [x8, #0x440]
0x106be9c94 <+440>: stur   q1, [sp, #0x38]
0x106be9c98 <+444>: stur   q0, [sp, #0x48]
0x106be9c9c <+448>: stur   q0, [sp, #0x58]
0x106be9ca0 <+452>: stur   q0, [sp, #0x68]
0x106be9ca4 <+456>: str    xzr, [sp, #0x78]
0x106be9ca8 <+460>: mov    w8, #0x1
0x106be9cac <+464>: str    w8, [sp, #0x80]
0x106be9cb0 <+468>: add    x1, sp, #0x10
0x106be9cb4 <+472>: mov    x0, x21
0x106be9cb8 <+476>: bl     0x106be0878               ; dyld4::APIs::bootstrap(dyld4::ProcessConfig const&, dyld4::RuntimeLocks&)
0x106be9cbc <+480>: mov    x19, x0
0x106be9cc0 <+484>: bl     0x106beab78               ; dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*)

Thread 1: EXC_BAD_ACCESS (code=1, address=0x631)
0x106be9cc4 <+488>: mov    x20, x0

0x106be9cc8 <+492>: mov    x0, x19
0x106be9ccc <+496>: bl     0x106be02c4               ; dyld4::RuntimeState::decWritable()
0x106be9cd0 <+500>: ldr    x8, [x19, #0x8]
0x106be9cd4 <+504>: ldr    w0, [x8, #0x40]
0x106be9cd8 <+508>: ldp    x1, x2, [x8, #0x48]
0x106be9cdc <+512>: ldr    x3, [x8, #0x58]
0x106be9ce0 <+516>: blraaz x20
0x106be9ce4 <+520>: mov    x1, x0
0x106be9ce8 <+524>: ldr    x0, [x19, #0x68]
0x106be9cec <+528>: ldr    x16, [x0]
0x106be9cf0 <+532>: mov    x17, x0
0x106be9cf4 <+536>: movk   x17, #0x9abf, lsl #48
0x106be9cf8 <+540>: autda  x16, x17
0x106be9cfc <+544>: ldr    x8, [x16, #0x78]!
0x106be9d00 <+548>: mov    x9, x16
0x106be9d04 <+552>: mov    x17, x9
0x106be9d08 <+556>: movk   x17, #0x3448, lsl #48
0x106be9d0c <+560>: blraa  x8, x17
0x106be9d10 <+564>: adrp   x0, 54
0x106be9d14 <+568>: add    x0, x0, #0x320            ; "start"
0x106be9d18 <+572>: adrp   x1, 54
0x106be9d1c <+576>: add    x1, x1, #0x326            ; "dyldMain.cpp"
0x106be9d20 <+580>: adrp   x3, 54
0x106be9d24 <+584>: add    x3, x3, #0x333            ; "dyldMA->hasChainedFixups()"
0x106be9d28 <+588>: mov    w2, #0x33a
0x106be9d2c <+592>: bl     0x106c1d85c               ; __assert_rtn

`

anthonynevo commented 2 years ago

Hello,

I encounter the same problem with version 102 (version 96 is fine). I'm using Xcode 13.4 / iOS 15.5.

A quick test:

stasel commented 2 years ago

Hey all Really sorry about that! I have tested the lib before publishing and it worked. Probably was some cached version. I see the crash now.

I'll remove the release and check what happened. Thanks for the heads up

gurhub commented 2 years ago

Hi All,

You're welcome. Stasel, you shouldn't be a sorry man, I've my own open source project too, it happens a lot. We appreciate your quick return.

Also, thank you @anthonynevo for sharing.

Best

stasel commented 2 years ago

I still have some issues compiling and working with M102. However, the good news is that M103 is working just fine and it's due to release next week. So I think it's the best to wait for M103 and release that

gurhub commented 2 years ago

Great news!

stasel commented 2 years ago

Version M103 has been released. I didn't encounter any issues. Can you confirm it's working for you as well?

sochalewski commented 2 years ago

@stasel It works very well for me, thank you for your work! ❤️

anthonynevo commented 2 years ago

Version M103 works perfectly for me as well. Big bonus on the new version: without bitcode, the SPM is much lighter and the loading of the project is blazing fast. Many thanks @stasel for your work !

gurhub commented 2 years ago

I was traveling for a while, and now I've found a time to test. Thank you very much for your effort. The issue is fixed! Also as @anthonynevo said, loading is pretty fast!

Wishing you all a great day!

Best