Tag: lldb

为什么使用HTMLstring对NSAttributedString的初始调用比后续调用要长100倍?

我需要在我的iOS应用程序中显示HTML文本。 我决定我将使用NSAttributedString , initWithData:options:documentAttributes:error:的内置方法。 实际的parsing工作很好,但是,我似乎遇到了一个非常奇怪的错误,只有似乎表明自己,如果我有debugging器附加。 这种方法第一次被调用,运行iOS 7.0.4的iPhone 5S运行时间仅为1秒,iPod Touch 5代运行时间约为1.5秒。 模拟器上也出现了这个怪癖,但由于模拟器的速度很快,所以这个问题显而易见。 接下来的通话只需要10-50ms左右,比起初始通话要快得多。 这似乎与inputstring的caching没有关系,因为我在“真实”应用程序中用多个inputstringtesting了它。 但是,当我运行程序没有debugging器,它按预期运行,需要约10-20毫秒,这是我期望的HTMLparsing。 这是代码的相关部分: -(void) benchmarkMe:(id)sender { NSData *data = [testString dataUsingEncoding:NSUTF8StringEncoding]; NSTimeInterval startTime = [[NSDate date] timeIntervalSinceReferenceDate]; // So the complier doesn't keep complaining at me. __attribute__((unused)) NSAttributedString *parsed = [[NSAttributedString alloc] initWithData:data options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding) } documentAttributes:nil error:nil]; NSTimeInterval endTime […]

如何在self.view属性上设置lldb观察点?

我想跟踪什么时候改变self.view的大小。 什么是正确的格式? (lldb) po self.view (UIView *) $1 = 0x0a8aba20 <UIView: 0xa8aba20; frame = (0 0; 480 864); autoresize = W+TM+BM; layer = <CALayer: 0xa8aba50>> (lldb) watch set variable self.view.frame.size.width error: "self" is a pointer and . was used to attempt to access "view". Did you mean "self->view.frame.size.width"? (lldb) watch set variable self->view error: "view" […]

相当于GDB的“info malloc-history <address>”命令的LLDB?

我正在尝试解决iOS中的“发送到解除分配的实例的消息”错误。

如何使用Xcodedebugging器打印出一个属性的内容?

我正在写一个iOS应用程序,我需要使用内置的Xcodedebugging器的帮助。 假设我有一个名为HomeViewController的对象,它有三个属性 @property (nonatomic) BOOL finished; @property (nonatomic, strong) NSArray *myArray; @property (nonatomic, strong) NSString *myName; @synthesize finished = _finished, myArray = _myArray, myName = _myName; 假设我在这个类中有一个断点。 我将如何查看这些属性的内容? 我已经尝试了诸如po myName , print myName和print [self myName]但我无法弄清楚如何做到这一点。 我试过使用LLDB,但我不断得到这个人遇到的相同的错误( lldb未能打印variables值与“错误:引用'id'是不明确的” )。 这个问题被接受的答案是,LLDB被打破,我应该只使用GDB; 但是,我拒绝接受如此基本的东西被打破。 尽pipe如此,我也曾经尝试过使用类似GDB的命令, 但是,我也无法让GDB工作。 请帮助

在Xcode 4.3与LLDB奇怪的错误消息

我目前正在用Xcode 4.3.2编写一个iOS应用程序。 在我的代码的大部分地方,使用LLDB进行debugging工作得很好。 然而在某些时候,我正在逐步浏览我的代码时收到一条奇怪的消息。 它说,当我hover在一个有价证券 错误[IRForTarget]:无法findObjective-C间接ivar符号OBJC_IVAR _ $ _ MyFancyClass.iVar 而不是显示我的价值。 但是,在Variables View ,我可以看到它很好。 直到我selectPrint Description of …也就是说,因为这样,Xcode崩溃…当我使用GDB时,hover工作,但variables的types和值是错误的。 我发现我的代码出了问题,导致debugging器失败。 但是,代码运行良好。 我很想提供一些样例代码,但是这个类很长,我不能确定我拧紧的确切位置。 那么有没有人遇到类似的行为? 更新:实际上,这似乎发生在我的代码无处不在,只是在一些特定的文件。 如果有帮助,当LLDB显示上述消息时,GDB总是显示拥有该iVar的Class对象,而不是iVar本身。 看起来内存pipe理有问题。 例如,如果我说的话 [notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; 即使我有,select器也会被调用 [notificationCenter postNotificationName:bar object:objB];

LLDB(Swift):将原始地址转换为可用types

是否有一个LLDB命令可以将一个原始地址转换成一个可用的Swift类? 例如: (lldb) po 0x7df67c50 as MKPinAnnotationView 我知道这个地址指向一个MKPinAnnotationView,但它不在我可以select的框架中。 但是,我想将原始地址转换为MKPinAnnotationView,以便我可以检查其属性。 这可能吗?