ios crash Application received signal SIGSEGV 通过crash 地址找到源码地址



解决 ios crash 问题...

分析错误信息...通过crash地址分析到项目中对应的代码地方..

命令是:atos -arch armv7 -o PateoII 0x3cae11

方式:

1.找到打包程序的DYSM文件

    这文件通常在.xcarchive文件中。 右键该文件, 然后通过Terminal工具cd到

cd /Users/beyondsoft/Library/Developer/Xcode/Archives/2014-11-21/PateoII 14-11-21 上午9.49.xcarchive/dSYMs/PateoII.app.dSYM/Contents/Resources/DWARF

两种方式获取xcarchive文件夹...一种是在手动找到“Xcode/Archives”下面文件...

一种是:在xcode中,archive成功后, 会在Organizer界面中的Archives下, 可以看到所有的archive文件, 右键Show in Finder可以找到这个文件

2。如果通过两种方式,都只找到dSYMs文件夹,里面什么也没有...那么需要重新打包...在打包之前在xcode中设置...

    设置...选中项目名...在右边target中找到项目...在buildsetting中 搜索 debug info 把对应的debug information format 的值从DWARF改成DWARF with dSYM file..

3..找到对应错误的地址...使用命令...

   atos -arch armv7 -o PateoII 0x3cae11
其中..."PateoII"是app 名,  “0x3cae11”是地址


这样,在大多情况下,都是可以找到对应错误地方的信息的...


eg;

*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[2]
(null)
(
	0   CoreFoundation                      0x2ded0ee3  + 154
	1   libobjc.A.dylib                     0x3866bce7 objc_exception_throw + 38
	2   CoreFoundation                      0x2de0ecbf  + 534
	3   CoreFoundation                      0x2de0ea83  + 50
	4   PateoII                             0x4adb1 PateoII + 290225
	5   PateoII                             0x48a29 PateoII + 281129
	6   PateoII                             0x162ef3 PateoII + 1437427
	7   PateoII                             0x162dbd PateoII + 1437117
	8   PateoII                             0x69551 PateoII + 415057
	9   PateoII                             0x69293 PateoII + 414355
	10  libdispatch.dylib                   0x38b54d53  + 10
	11  libdispatch.dylib                   0x38b54d3f  + 22
	12  libdispatch.dylib                   0x38b576c3 _dispatch_main_queue_callback_4CF + 278
	13  CoreFoundation                      0x2de9b641  + 8
	14  CoreFoundation                      0x2de99f0d  + 1308
	15  CoreFoundation                      0x2de04729 CFRunLoopRunSpecific + 524
	16  CoreFoundation                      0x2de0450b CFRunLoopRunInMode + 106
	17  GraphicsServices                    0x32d736d3 GSEventRunModal + 138
	18  UIKit                               0x30765871 UIApplicationMain + 1136
	19  PateoII                             0x9bcb3 PateoII + 621747
	20  libdyld.dylib                       0x38b69ab7  + 2
)

dSYM UUID: 8370D419-C843-3BBC-A936-C58E921A14FA
CPU Type: armv7
Slide Address: 0x00004000
Binary Image: PateoII
Base Address: 0x00088000

测试结果...

BeyondsofttekiMac-mini:DWARF beyondsoft$ atos -arch armv7 -o PateoII 0x4adb1
-[NoticeDetailViewController showData:] (in PateoII) (NoticeDetailViewController.m:539)
BeyondsofttekiMac-mini:DWARF beyondsoft$

你可能感兴趣的:(iOS,objective-c)