image:
常用來尋找棧地址對應代碼位置:
舉個栗子:
應用場景(數(shù)組越界)模擬代碼:
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
執(zhí)行命令后輸出結果如下:
Address: BGMultimediaDemo[0x0000000100001550] (BGMultimediaDemo.TEXT.text + 192)
Summary: BGMultimediaDemo`-[ViewController viewDidLoad] + 192 at ViewController.m:30
從上面輸出結果中可以看出抗楔,錯誤位置應該是ViewController.m文件中的30行辑鲤。是不是超級好用纹安?反正我覺得好用涮帘。