chaox 发表于 2015-10-12 10:52:35

关于第二次发起视频请求 内存引起的crash的问题

不管服务器开启与否, 第二次进行视频请求的时候都会crash
因为我司用来做视频审核, 所以暂时没有进入房间的需求, 所当发起视频请求时, 后台会在
+ (NSString*) GetUserInfo: (int) dwUserId : (int) dwInfoId;方法中返回我一个id, 然后我直接向这个id发起视频请求.这些方法我都写在一个UIView中, 就是点击视频请求时会出现请求中的loading视图. 根据后台返回我的id来push到视频界面, 如果服务器连接失败也会返回一定话术 然后移除这个view.
一下是连续两次视频请求的日志,在第二次的时候crash了 通过zombie对象排查 发现问题出现在- (void)AnyChatNotifyHandler:(NSNotification*)notify 方法中
2015-10-12 10:37:02.707 MobileCRM ---------------------------AnyChat Platform Core SDK Client Log---------------------------2015-10-12 10:37:02.708 MobileCRM Load libanychatcore.so success!(V5.3 Build Time:Aug 10 2015 12:28:11)2015-10-12 10:37:02.709 MobileCRM Load libmediautil.so success!(V5.3 Build Time:Aug 10 2015 12:28:28)2015-10-12 10:37:02.710 MobileCRM Load libmediashow.so success!(V5.3 Build Time:Aug 10 2015 12:28:26)2015-10-12 10:37:02.711 MobileCRM Load libmediacore.so success!(V5.3 Build Time:Aug 10 2015 12:28:23)2015-10-12 10:39:21.936 MobileCRM Invoke      Connect(10.1.10.178,8906)=02015-10-12 10:39:21.937 MobileCRM Invoke      LoginServer(username=sh_linxinyu)2015-10-12 10:39:21.953 MobileCRM CheckClientSocketLink         Connect(ip=10.1.10.178,port=8906)2015-10-12 10:39:28.048 MobileCRM Message      OnConnect(bSuccess:0, errorcode=100)2015-10-12 10:39:28.338 MobileCRM Invoke      LogoutServer(userid=-1)      Elapse:23 ms2015-10-12 10:39:35.426 MobileCRM Invoke      Connect(10.1.10.178,8906)=02015-10-12 10:39:35.427 MobileCRM Invoke      LoginServer(username=sh_linxinyu)2015-10-12 10:39:35.525 MobileCRM CheckClientSocketLink         Connect(ip=10.1.10.178,port=8906)2015-10-12 10:39:41.528 MobileCRM Message      OnConnect(bSuccess:0, errorcode=100)MobileCRM(74887,0x10ecde300) malloc: *** error for object 0x7f8033802b50: pointer being freed was not allocated*** set a breakpoint in malloc_error_break to debug

chaox 发表于 2015-10-12 10:53:55

没有进入房间的需求 可能我描述不太准确 就是没有像demo那样 进入到一个全是用户列表的界面再选择用户进行视频 那个界面的逻辑我全都写在了view上

admin 发表于 2015-10-12 11:11:51

通过zombie对象排查 发现问题出现在
- (void)AnyChatNotifyHandler:(NSNotification*)notify 方法中能否提供更多的信息,比如出现问题之后的堆栈信息等供我们分析?

chaox 发表于 2015-10-12 11:28:42

admin 发表于 2015-10-12 11:11
能否提供更多的信息,比如出现问题之后的堆栈信息等供我们分析?

(lldb) thread backtrace
* thread #1: tid = 0x6dfddf, 0x0000000105d7f9c0 libobjc.A.dylib`objc_release + 16, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x0000000105d7f9c0 libobjc.A.dylib`objc_release + 16
    frame #1: 0x0000000105d808cd libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 591
    frame #2: 0x0000000105ff6f06 CoreFoundation`_CFAutoreleasePoolPop + 22
    frame #3: 0x000000010591d75a Foundation`__NSThreadPerformPerform + 491
    frame #4: 0x0000000106035431 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #5: 0x000000010602b2fd CoreFoundation`__CFRunLoopDoSources0 + 269
    frame #6: 0x000000010602a934 CoreFoundation`__CFRunLoopRun + 868
    frame #7: 0x000000010602a366 CoreFoundation`CFRunLoopRunSpecific + 470
    frame #8: 0x000000010a381a3e GraphicsServices`GSEventRunModal + 161
    frame #9: 0x0000000106f198c0 UIKit`UIApplicationMain + 1282
* frame #10: 0x0000000103ff650f MobileCRM`main(argc=3, argv=0x00007fff5bd77510) + 111 at main.m:14
    frame #11: 0x0000000108670145 libdyld.dylib`start + 1
(lldb) thread info
thread #1: tid = 0x6dfddf, 0x0000000105d7f9c0 libobjc.A.dylib`objc_release + 16, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

admin 发表于 2015-10-12 12:02:54

您好,能否在我们的标准demo(比如:helloAnyChat)上,修改一下代码,将您所说的“没有进入房间的需求”在上面做一下实现,看问题是否也同样存在?如果存在,您可以将修改后的源代码发给我们(service@bairuitech.com),我们根据您提供的源代码可能会较快速的找到问题的原因并提供解决方案。

chaox 发表于 2015-10-12 13:23:35

admin 发表于 2015-10-12 12:02
您好,能否在我们的标准demo(比如:helloAnyChat)上,修改一下代码,将您所说的“没有进入房间的需求”在 ...

好 我下午更改一下

chaox 发表于 2015-10-12 16:45:02

admin 发表于 2015-10-12 12:02
您好,能否在我们的标准demo(比如:helloAnyChat)上,修改一下代码,将您所说的“没有进入房间的需求”在 ...

在demo上是没有问题的

佰锐科技-李友勤 发表于 2015-10-12 16:52:20

chaox 发表于 2015-10-12 16:45
在demo上是没有问题的

您好,可以讲相关代码发过来我们帮您分析下

admin 发表于 2015-10-12 16:53:05

MobileCRM(74887,0x10ecde300) malloc: *** error for object 0x7f8033802b50: pointer being freed was not allocated
那您对比一下Demo和您自己的程序,哪些地方会有差异?重点排查一下委托的实现“anychat.notifyMsgDelegate = self;”是否有多个页面都实现了同一个委托?

admin 发表于 2015-10-12 16:55:32

2015-10-12 10:39:41.528 MobileCRM Message      OnConnect(bSuccess:0, errorcode=100)
MobileCRM(74887,0x10ecde300) malloc: *** error for object 0x7f8033802b50: pointer being freed was not allocated
根据日志来分析,可能是触发网络连接异步事件时出错了:// 连接服务器消息
- (void) OnAnyChatConnect:(BOOL) bSuccess
{
    if (bSuccess)
    {
      theStateInfo.text = @"• Success connected to server";
    }
}是否网络连接事件触发时,相关的窗口(ViewController)已经销毁了?
页: [1] 2 3
查看完整版本: 关于第二次发起视频请求 内存引起的crash的问题