superchao88 2013-10-18 08:15
浏览 1670

内存泄露如何找?????

多运行几次就会出现
malloc: *** error for object 0x1e206e14: incorrect checksum for freed object - object was probably modified after being freed.

*** set a breakpoint in malloc_error_break to debug

以下是程序的调用顺序

NSString *u = [testURL stringByAppendingString:@"/time/set/getfamily"];
NSURL *url = [NSURL URLWithString:u];

NSDictionary *connectParams = [NSDictionary dictionaryWithObjectsAndKeys:

// [NSString stringWithFormat:@"%@", BINDID], @"bind_id",
BINDID, @"bind_id",
nil];

NSMutableData *_mdata = [self createJsonCompressAndEncrypt:connectParams];

NSData *reqdata = [WebService request:url body:_mdata];

NSDictionary *resultsDictionary = [NSDictionary dictionary];
if (reqdata.length == 0) {
    //连接错误,服务器无返回

} else {
    resultsDictionary = [self decryptDecompressJson:reqdata];

    DLog(@"data --> dictionary: %@", resultsDictionary);

    if (resultsDictionary && [resultsDictionary[@"ret"] intValue] == 0) {
        ProtectSettingReturnMessage *userInfoReturnMessage = [[[ProtectSettingReturnMessage alloc] init] autorelease];
        userInfoReturnMessage.cmdType = [NSString stringWithFormat:@"%@", resultsDictionary[@"mode"]];
        userInfoReturnMessage.timeLength = [NSString stringWithFormat:@"%@", resultsDictionary[@"time_total"]];
        userInfoReturnMessage.urlPeriod = resultsDictionary[@"time_period"];
        userInfoReturnMessage.unlimited = [NSString stringWithFormat:@"%@", resultsDictionary[@"enabled"]];

        return userInfoReturnMessage;
    }
}

return nil;



NSString *requestJson = [reqParams JSONString];
DLog(@"reqParams: %@", [reqParams JSONString]);

//构造Json,格式为:XXX{}
NSString *inStr = [NSString stringWithFormat:@"%d", (int)++ requestNum];
NSString *requestStr = [inStr stringByAppendingString:requestJson];
//    NSData *requestData = [requestStr dataUsingEncoding:[NSString defaultCStringEncoding]];
NSData *requestData = [requestStr dataUsingEncoding:NSUTF8StringEncoding];

//压缩,加密
//    NSData *compressData = [NSData dataByCompressingData:requestData];
zlibCompress *zz = [[[zlibCompress alloc] init] autorelease];
NSData *compressData = [zz dataByCompressingData:requestData];

NSMutableData *_mdata = [[NSMutableData alloc] init];
if (compressData) {
    NSData *desData = [Utility desData:compressData key:DESKey CCOperation:kCCEncrypt];
    //        NSString *desStr = [[NSString alloc] initWithData:desData encoding:[NSString defaultCStringEncoding]];

    if (desData) {
        _mdata = [NSMutableData dataWithData:desData];
    } else {
        DLog(@"请求数据加密失败!!!!");
    }
} else {
    DLog(@"请求数据压缩失败!!!!");
}

return _mdata;


Byte* bytes = (Byte*)[data bytes];
NSInteger len = [data length];
NSMutableData *compressedData = [[[NSMutableData alloc] initWithCapacity:len] autorelease];
Byte* compressedBytes = new Byte[len];

z_stream stream;
int err;
stream.zalloc = (alloc_func)0;
stream.zfree = (free_func)0;
stream.opaque = (voidpf)0;

err = deflateInit(&stream, Z_DEFAULT_COMPRESSION);
CHECK_ERR(err, @"deflateInit");


stream.next_in = bytes;
stream.avail_in = len;
stream.avail_out = 0;
while (stream.avail_out == 0) {
    stream.avail_in = len - stream.total_in;
    stream.next_out = compressedBytes;
    stream.avail_out = COMPRESSION_BLOCK;
    err = deflate(&stream, Z_NO_FLUSH);
    [compressedData appendBytes:compressedBytes length:(stream.total_out-[compressedData length])];
    if (err == Z_STREAM_END)
        continue;
    CHECK_ERR(err, @"deflate");
}
stream.avail_out = 0;
while (stream.avail_out == 0) {
    stream.avail_in = len - stream.total_in;
    stream.next_out = compressedBytes;
    stream.avail_out = COMPRESSION_BLOCK;
    err = deflate(&stream, Z_FINISH);
    [compressedData retain];
    [compressedData appendBytes:compressedBytes length:(stream.total_out-[compressedData length])];
    if (err == Z_STREAM_END)
        continue;
    CHECK_ERR(err, @"deflate");
}
err = deflateEnd(&stream);
CHECK_ERR(err, @"deflateEnd");

delete[] compressedBytes;
return compressedData;

求大牛解解

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥100 关于使用MATLAB中copularnd函数的问题
    • ¥20 在虚拟机的pycharm上
    • ¥15 jupyterthemes 设置完毕后没有效果
    • ¥15 matlab图像高斯低通滤波
    • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
    • ¥15 钢筋实图交点识别,机器视觉代码
    • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
    • ¥50 400g qsfp 光模块iphy方案
    • ¥15 两块ADC0804用proteus仿真时,出现异常
    • ¥15 关于风控系统,如何去选择