信号 / malloc错误 - 释放对象的校验和错误



我一直在注意到我的应用程序中的随机崩溃似乎与signalr-objc有关。崩溃可以在接收信号数据后不久或接收到数据后不久发生。

错误消息是:

malloc: *** error for object 0x7fbae292ce00: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

断点放在srchunkbuffer.m文件中的这一行上:

[_buffer appendString:[[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding]];

如果我评论了使用SignalR-OBJC调用服务器端方法以订阅组的代码,则不会发生此崩溃:

for (NSString *groupName in combinedArray ){
    [proxy invoke:@"Subscribe" withArgs:@[groupName] completionHandler:nil];
    }

我确保了SignalR-OBJC的所有可可豆pod/依赖关系是最新的,删除了我的循环以注册组,而是一次手动注册它们,但我仍然随机崩溃。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

我看到有可能使用 @synchronized但不确定是否适合这种情况。

如何停止此崩溃?

通过用:

替换我的[连接启动]来解决
[connection start:[[SRLongPollingTransport alloc] init]]

必须导入" srlongpollingtransport.h"才能使这项工作...

来源:https://github.com/dyknow/signalr-objc/issues/243

相关内容

最新更新