- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用的是 Xcode 4.5.1。我认为这是我看到的相对较新的行为。
我更喜欢在启用“所有异常”断点的情况下开发和测试我的项目。
我遇到过这样一种情况,我正在将缩略图图像加载到 TableView 中的单元格中,但出现了 __cxa_throw 异常。当我单击“继续执行程序”按钮时,Xcode 继续其愉快的方式。我得到了缩略图。应用程序似乎工作正常。我正在寻找一些关于如何确定这是否可以安全忽略的提示。就像一些关于理解堆栈跟踪的指针?还是别的?
这是代码片段:
NSString *imageStr = item.thumbURL;
imageStr = [imageStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *imageURL;
if (![imageStr isEqualToString:@""]) {
imageURL = [NSURL URLWithString:imageStr];
NSLog(@"imageURL: %@",imageURL);
if (imageURL == nil) {
NSLog(@"imageUrl was nil for string: %@",imageStr);
} else {
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
//spinner.frame = CGRectMake(cell.imageView.frame.size.width/2,cell.imageView.frame.origin.y + cell.imageView.frame.size.height/2,cell.imageView.frame.size.width,cell.imageView.frame.size.height);
spinner.frame = CGRectMake(10,20,40,40);
[spinner startAnimating];
[cell addSubview:spinner];
dispatch_queue_t downloadQueue = dispatch_queue_create("thumbnail downloader", NULL);
dispatch_async(downloadQueue, ^{
NSLog(@"Network request for tour_thumb image: %@",imageStr);
UIImage *img = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:imageURL]];
dispatch_async(dispatch_get_main_queue(), ^{
[spinner removeFromSuperview];
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(8, 8, cell.contentView.frame.size.width/2 - 16, cell.contentView.frame.size.height - 16)];
imgView.image = img;
[cell.contentView addSubview:imgView];
});
});
dispatch_release(downloadQueue);
}
}
这是我在堆栈跟踪中看到的内容:
#0 0x34a9c524 in __cxa_throw ()
#1 0x387014ce in AddChildNode(XMP_Node*, XML_Node const&, char const*, bool) ()
#2 0x38700d22 in RDF_LiteralPropertyElement(XMP_Node*, XML_Node const&, bool) ()
#3 0x3870094e in RDF_PropertyElementList(XMP_Node*, XML_Node const&, bool) ()
#4 0x38700608 in ProcessRDF(XMP_Node*, XML_Node const&, unsigned int) ()
#5 0x3871480a in XMPMeta::ParseFromBuffer(char const*, unsigned int, unsigned int) ()
#6 0x387095c0 in WXMPMeta_ParseFromBuffer_1 ()
#7 0x38725578 in TXMPMeta<std::string>::ParseFromBuffer(char const*, unsigned int, unsigned int) ()
#8 0x387254de in TXMPMeta<std::string>::TXMPMeta(char const*, unsigned int) ()
#9 0x38722b70 in CreateMetadataFromXMPDataInternal(char const*, unsigned long, unsigned int) ()
#10 0x38739a50 in readXMPProperties ()
#11 0x386a01fc in readXMPData ()
#12 0x3868cec8 in initImageJPEG ()
#13 0x3868c2ee in _CGImagePluginInitJPEG ()
#14 0x3867e274 in makeImagePlus ()
#15 0x3867ddde in CGImageSourceCreateImageAtIndex ()
#16 0x38e117b6 in _UIImageRefFromData ()
#17 0x38e116c6 in -[UIImage initWithData:] ()
#18 0x0004cb0a in __57-[ViewController tableView:cellForRowAtIndexPath:]_block_invoke_0 at ViewController.m:335
#19 0x313fc792 in _dispatch_call_block_and_release ()
#20 0x313ffb3a in _dispatch_queue_drain ()
#21 0x313fd67c in _dispatch_queue_invoke ()
#22 0x31400612 in _dispatch_root_queue_drain ()
#23 0x314007d8 in _dispatch_worker_thread2 ()
#24 0x394767f0 in _pthread_wqthread ()
#25 0x39476684 in start_wqthread ()
最佳答案
这显然在实现中很深,如果他们决定使用异常在内部发出错误信号,C++ 异常可以成为正常流程的一部分。
如果您自己没有编写任何 C++,那么可以安全地忽略它。
只捕获标准的 Objective-C 异常:
objc_exception_throw
关于iphone - 我如何知道何时可以安全地忽略 All Exceptions 断点上的 __cxa_throw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861748/
为什么下面的C++程序与系统提供的__cxa_throw没有链接冲突? #include void __cxa_throw(void *, void *, void (*)(void *)) {
AudioToolBox中的一些函数总是抛出__cxa_throw,同时ExtAudioFileDispose等函数运行良好,返回值为0是正常的。 当我想使用 try {} catch(...) {}
我使用的是 Xcode 4.5.1。我认为这是我看到的相对较新的行为。 我更喜欢在启用“所有异常”断点的情况下开发和测试我的项目。 我遇到过这样一种情况,我正在将缩略图图像加载到 TableView
类似question有人问过..但我想让它更具体地针对核心音频..因为我们中的一些人可能已经注意到核心音频几乎没有出错的余地。 作为answer对上述问题的解释是,__cxa_throw 是 C++
我有一个函数可以在 iOS 8.3 上获取 Helvetica Neue 字体(尽管从 ~8.0 开始我就遇到了同样的问题)。 static UIFont *helveticaNeue() { r
在使用 LLDB 研究调试异常时,我发现了以下文章和线程,以及其他提供相同信息的文章: https://www.natashatherobot.com/xcode-debugging-trick/ X
我是一名优秀的程序员,十分优秀!