objective-c – 使用atos通过dSYM确定崩溃的方法名称
发布时间:2020-12-15 01:50:55 所属栏目:百科 来源:网络整理
导读:我有一个来自用户的控制台堆栈(不是崩溃报告),我正在尝试确定我的应用程序中哪个方法调用是最后一个人. 我知道他们正在使用哪个版本的应用程序,并且我有该版本/调试版本的副本,以及存档副本的dSYM文件. 但是,当我尝试使用atos吐出内存地址时,它似乎没有帮助.
我有一个来自用户的控制台堆栈(不是崩溃报告),我正在尝试确定我的应用程序中哪个方法调用是最后一个人.
我知道他们正在使用哪个版本的应用程序,并且我有该版本/调试版本的副本,以及存档副本的dSYM文件. 但是,当我尝试使用atos吐出内存地址时,它似乎没有帮助. (我在下面的堆栈中使用0x000000010e703bc0.) craig-mbp:Desktop Craig$atos -o MyApp.app_1.0.0.dSYM/Contents/Resources/DWARF/MyApp -arch x86_64 0x000000010e703bc0 (<- entered by me) 0x000000010e703bc0 (<- console output) 我需要输入某种偏移吗?或者根据用户提供给我的地址,某种内存地址数学来确定程序内存块中的实际位置? 这是我收到的堆栈跟踪的总和: 28/11/12 10:48:56.220 AM MyApp[411] ( 0 CoreFoundation 0x00007fff8fee90a6 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff8e94a3f0 objc_exception_throw + 43 2 CoreFoundation 0x00007fff8fee8e7c +[NSException raise:format:] + 204 3 Foundation 0x00007fff92b1ce5c -[NSPlaceholderString initWithString:] + 93 4 Foundation 0x00007fff92b1cde4 +[NSString stringWithString:] + 43 5 MyApp 0x000000010e703bc0 MyApp + 23488 6 MyApp 0x000000010e70a038 MyApp + 49208 7 MyApp 0x000000010e70b41a MyApp + 54298 8 MyApp 0x000000010e70bb92 MyApp + 56210 9 Foundation 0x00007fff92b22db5 __NSFireDelayedPerform + 358 10 CoreFoundation 0x00007fff8fea5da4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20 11 CoreFoundation 0x00007fff8fea58bd __CFRunLoopDoTimer + 557 12 CoreFoundation 0x00007fff8fe8b099 __CFRunLoopRun + 1513 13 CoreFoundation 0x00007fff8fe8a6b2 CFRunLoopRunSpecific + 290 14 HIToolbox 0x00007fff8b31c0a4 RunCurrentEventLoopInMode + 209 15 HIToolbox 0x00007fff8b31be42 ReceiveNextEventCommon + 356 16 HIToolbox 0x00007fff8b31bcd3 BlockUntilNextEventMatchingListInMode + 62 17 AppKit 0x00007fff948e7613 _DPSNextEvent + 685 18 AppKit 0x00007fff948e6ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 19 AppKit 0x00007fff948de283 -[NSApplication run] + 517 20 AppKit 0x00007fff94882cb6 NSApplicationMain + 869 21 MyApp 0x000000010e6ffab4 MyApp + 6836 解决方法
它期待一个加载地址.你有没有尝试过:
atos -o MyApp.app_1.0.0.dSYM/Contents/Resources/DWARF/MyApp -arch x86_64 -l 0x000000010E6FE000 我从你的例子中得到0x000000010E6FE000,从0x000000010e6ffab4减去6836(base10)…或者你可以使用MyApp中显示的任何其他数学项. 这是我最近崩溃的一个例子,其中0x2d000在崩溃日志中很明显.第一行是我在命令行输入的内容.之后的每一行都是程序输出(用$或$>人工缩进我的输入……屏幕上没有这样的提示). $atos -o /x/xcode/DerivedData/Xxxx/Build/Products/Debug-iphoneos/Xxxx.app.dSYM/Contents/Resources/DWARF/Xxxx -l 0x2d000 got symbolicator for /x/xcode/DerivedData/Xxxx/Build/Products/Debug-iphoneos/Xxxx.app.dSYM/Contents/Resources/DWARF/Xxxx,base address 1000 $> 0x0002f9a6 0x000039a6 (in Xxxx) $> 0x0002f940 0x00003940 (in Xxxx) $> 0x000c70f6 -[TFHTTPOperation connection:didReceiveData:] (in Xxxx) + 754 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |