美文网首页iOS
奔溃调试之image

奔溃调试之image

作者: HsuKit | 来源:发表于2017-06-22 11:12 被阅读0次

    image:

    常用来寻找栈地址对应代码位置:

    举个栗子:

    应用场景(数组越界)模拟代码:

    NSArray *array = @[@"yang",@"she",@"bing"];

    NSLog(@"%@",array[3]);

    错误信息如下:

    Terminating app due to uncaught exception

    'NSRangeException'

    , reason:

    '-[NSArrayI objectAtIndex:]: index 3 beyond bounds [0 .. 2]'

    *First

    throw

    call stack:

    (

    0 CoreFoundation 0x000000010579734bexceptionPreprocess + 171

    1 libobjc.A.dylib 0x00000001051f821e objc_exception_throw + 48

    2 CoreFoundation 0x00000001056d1eeb -[__NSArrayI objectAtIndex:] + 155

    3 BGMultimediaDemo 0x0000000104c25550 -[ViewController viewDidLoad] + 192

    4 UIKit 0x0000000105d5c06d -[UIViewController loadViewIfRequired] + 1258

    ......

    ......

    ......

    21 BGMultimediaDemo 0x0000000104c25adf main + 111

    22 libdyld.dylib 0x000000010857268d start + 1

    23 ??? 0x0000000000000001 0x0 + 1

    )

    libc++abi.dylib: terminating

    with

    uncaught exception of type NSException

    这个时候我们如果怀疑出错的地址是0x0000000104c25550,那么我们可以使用下面命令来找出错误代码的位置:

    image lookup --address 0x0000000104c25550

    执行命令后输出结果如下:

    Address: BGMultimediaDemo[0x0000000100001550] (BGMultimediaDemo.TEXT.text + 192)

    Summary: BGMultimediaDemo`-[ViewController viewDidLoad] + 192 at ViewController.m:30

    从上面输出结果中可以看出,错误位置应该是ViewController.m文件中的30行。是不是超级好用?反正我觉得好用。

    相关文章

      网友评论

        本文标题:奔溃调试之image

        本文链接:https://www.haomeiwen.com/subject/qxoxcxtx.html