Canceling call as the malloc lock is held so it isn't safe to call the runtime – in iOS-Collection of common programming errors

When I was converting a char * to NSString in my App, I got this strage error:

Canceling call as the malloc lock is held so it isn’t safe to call the runtime

The GDB gave me the below information.

Canceling call as the malloc lock is held so it isn’t safe to call the runtime. Issue the command: set objc-non-blocking-mode off to override this check if you are sure your call doesn’t use the malloc libraries or the ObjC runtime.

Why this happens?

The code I used here is:

objcResponse.desc = [NSString stringWithCString:info->desc encoding:NSUTF8StringEncoding];

objCResponse is an Objective C entity and info is an C++ entity (class).

Other information:

I am using NSOperationQueue in my App to make calls to SOAP Web service. I also get the below error if I used this code:

 char *value = info->desc;
    objcResponse.desc = [NSString stringWithCString:value encoding:NSUTF8StringEncoding];

Attempting to create USE_BLOCK_IN_FRAME variable with block that isn’t in the frame.