streaming-ios
streaming-ios copied to clipboard
example project crach on ios 9 iphone 4s , Thread 1: EXC_BAD_ACCESS
example project crach on ios 9 iphone 4s , but in ios 10 iphone 7 work fine .
i use this example to test the same bug .
and i use last sdk 4.0.0
xcode 9.0
bug
Thread 1: EXC_BAD_ACCESS (code=1, address=0x10)
0xe2dda <+274>: sub.w r0, r7, #0x94
xcode debug :-
R5ProTestbed`::-[R5Stream publish:type:](NSString *, R5RecordType):
0xe2cc8 <+0>: push {r4, r5, r6, r7, lr}
0xe2cca <+2>: add r7, sp, #0xc
0xe2ccc <+4>: push.w {r8, r10, r11}
0xe2cd0 <+8>: vpush {d8, d9, d10, d11, d12, d13, d14, d15}
0xe2cd4 <+12>: sub sp, #0x58
0xe2cd6 <+14>: str r3, [r7, #-156]
0xe2cda <+18>: str r0, [r7, #-160]
0xe2cde <+22>: movw r0, #0x7476
0xe2ce2 <+26>: movt r0, #0x1e
0xe2ce6 <+30>: add r0, pc
0xe2ce8 <+32>: ldr r0, [r0]
0xe2cea <+34>: ldr r0, [r0]
0xe2cec <+36>: str r0, [r7, #-96]
0xe2cf0 <+40>: mov r0, r2
0xe2cf2 <+42>: blx 0x26ee74 ; symbol stub for: objc_retain
0xe2cf6 <+46>: movw r1, #0x9a8c
0xe2cfa <+50>: movt r1, #0x20
0xe2cfe <+54>: movw r2, #0x7486
0xe2d02 <+58>: movt r2, #0x1e
0xe2d06 <+62>: str r0, [r7, #-152]
0xe2d0a <+66>: ldr r0, [pc, #0x134] ; <+376> at R5Stream.mm:339
0xe2d0c <+68>: add r1, pc
0xe2d0e <+70>: add r2, pc
0xe2d10 <+72>: ldr r5, [r7, #-152]
0xe2d14 <+76>: ldr r4, [r1]
0xe2d16 <+78>: add r0, pc
0xe2d18 <+80>: ldr r1, [r2]
0xe2d1a <+82>: str r1, [r7, #-124]
0xe2d1e <+86>: str r0, [r7, #-120]
0xe2d22 <+90>: ldr r0, [pc, #0x120] ; <+380> at R5Stream.mm:339
0xe2d24 <+92>: str r7, [r7, #-116]
0xe2d28 <+96>: orr r0, r0, #0x1
0xe2d2c <+100>: str sp, [r7, #-108]
0xe2d30 <+104>: add r0, pc
0xe2d32 <+106>: str r0, [r7, #-112]
0xe2d36 <+110>: movs r0, #0x1
0xe2d38 <+112>: str r0, [r7, #-144]
0xe2d3c <+116>: sub.w r0, r7, #0x94
0xe2d40 <+120>: blx 0x26df34 ; symbol stub for: _Unwind_SjLj_Register
0xe2d44 <+124>: mov r0, r5
0xe2d46 <+126>: mov r1, r4
0xe2d48 <+128>: blx 0x26ee24 ; symbol stub for: objc_msgSend
0xe2d4c <+132>: adds r0, #0x3
0xe2d4e <+134>: sub.w r1, r7, #0x94
0xe2d52 <+138>: bic r0, r0, #0x3
0xe2d56 <+142>: adds r1, #0x28
0xe2d58 <+144>: sub.w r0, sp, r0
0xe2d5c <+148>: str r1, [r7, #-168]
0xe2d60 <+152>: str sp, [r7, #-172]
0xe2d64 <+156>: str r0, [r7, #-164]
0xe2d68 <+160>: mov sp, r0
0xe2d6a <+162>: str.w sp, [r1]
0xe2d6e <+166>: ldr r0, [r7, #-152]
0xe2d72 <+170>: blx 0x26ee84 ; symbol stub for: objc_retainAutorelease
0xe2d76 <+174>: str r0, [r7, #-176]
0xe2d7a <+178>: movw r1, #0x9ba8
0xe2d7e <+182>: movt r1, #0x20
0xe2d82 <+186>: movs r2, #0x2
0xe2d84 <+188>: add r1, pc
0xe2d86 <+190>: str r2, [r7, #-144]
0xe2d8a <+194>: ldr r1, [r1]
0xe2d8c <+196>: blx 0x26ee24 ; symbol stub for: objc_msgSend
0xe2d90 <+200>: mov r4, r0
0xe2d92 <+202>: mov r0, r4
0xe2d94 <+204>: blx 0x26f594 ; symbol stub for: strlen
0xe2d98 <+208>: ldr r5, [r7, #-164]
0xe2d9c <+212>: adds r2, r0, #0x1
0xe2d9e <+214>: mov r1, r4
0xe2da0 <+216>: mov r0, r5
0xe2da2 <+218>: blx 0x26ec64 ; symbol stub for: memcpy
0xe2da6 <+222>: movw r0, #0x9cda
0xe2daa <+226>: movt r0, #0x20
0xe2dae <+230>: add r0, pc
0xe2db0 <+232>: ldr r1, [r0]
0xe2db2 <+234>: movs r0, #0x3
0xe2db4 <+236>: str r0, [r7, #-144]
0xe2db8 <+240>: ldr r0, [r7, #-160]
0xe2dbc <+244>: mov r2, r5
0xe2dbe <+246>: ldr r3, [r7, #-156]
0xe2dc2 <+250>: blx 0x26ee24 ; symbol stub for: objc_msgSend
0xe2dc6 <+254>: ldr sp, [r7, #-172]
0xe2dca <+258>: ldr r0, [r7, #-168]
0xe2dce <+262>: str.w sp, [r0]
0xe2dd2 <+266>: ldr r0, [r7, #-176]
0xe2dd6 <+270>: blx 0x26ee64 ; symbol stub for: objc_release
0xe2dda <+274>: sub.w r0, r7, #0x94
0xe2dde <+278>: blx 0x26df54 ; symbol stub for: _Unwind_SjLj_Unregister
0xe2de2 <+282>: ldr r0, [r7, #-96]
0xe2de6 <+286>: movw r1, #0x736e
0xe2dea <+290>: movt r1, #0x1e
0xe2dee <+294>: add r1, pc
0xe2df0 <+296>: ldr r1, [r1]
0xe2df2 <+298>: ldr r1, [r1]
0xe2df4 <+300>: subs r0, r1, r0
0xe2df6 <+302>: itttt eq
0xe2df8 <+304>: subeq.w r4, r7, #0x58
0xe2dfc <+308>: moveq sp, r4
0xe2dfe <+310>: vpopeq {d8, d9, d10, d11}
0xe2e02 <+314>: vpopeq {d12, d13, d14, d15}
0xe2e06 <+318>: itt eq
0xe2e08 <+320>: popeq.w {r8, r10, r11}
0xe2e0c <+324>: popeq {r4, r5, r6, r7, pc}
0xe2e0e <+326>: blx 0x26e0c4 ; symbol stub for: __stack_chk_fail
0xe2e12 <+330>: ldr r0, [r7, #-144]
0xe2e16 <+334>: cmp r0, #0x3
0xe2e18 <+336>: bls 0xe2e1c ; <+340> at R5Stream.mm:335
0xe2e1a <+338>: trap
0xe2e1c <+340>: tbb [pc, r0]
0xe2e20 <+344>: lsls r2, r0, #0x8
0xe2e22 <+346>: movs r2, r0
0xe2e24 <+348>: ldr r4, [r7, #-140]
0xe2e28 <+352>: ldr r0, [r7, #-152]
0xe2e2c <+356>: blx 0x26ee64 ; symbol stub for: objc_release
0xe2e30 <+360>: mov.w r0, #0xffffffff
0xe2e34 <+364>: str r0, [r7, #-144]
0xe2e38 <+368>: mov r0, r4
0xe2e3a <+370>: blx 0x26df44 ; symbol stub for: _Unwind_SjLj_Resume
0xe2e3e <+374>: nop
0xe2e40 <+376>: strb r6, [r5, #0x4]
0xe2e42 <+378>: movs r6, r3
0xe2e44 <+380>: lsls r6, r3, #0x3
0xe2e46 <+382>: movs r0, r0
We will look into this. However, we don't recommend streaming with older model iPhones (any phones that do not support iOS 10), so unfortunately it will be a low priority ticket.
ok thank you @beetlejesss .
i fix this bug by remove any special characters in publish or subscribe stream name , and its work .