亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【譯】理解與分析ios應用的崩潰報告

2019-11-14 19:37:43
字體:
來源:轉載
供稿:網友

源網址:

http://developer.apple.com/library/ios/#technotes/tn2151/_index.html

      當一個應用程序崩潰時,創建一份“崩潰報告”對于理解崩潰是如何引起的非常有用。本文檔包含有關如何識別,了解并解釋崩潰報告的基本信息。

    簡介

      當一個應用程序在一臺iOS 設備上崩潰時,一份“崩潰報告”將在該設備上次創建并存儲起來。崩潰報告描述應用程序是在何種條件下崩潰的,大部分情況下包含一份當前正在運行線程的完整的堆棧跟蹤,通常這在調試問題時非常有用。如果你是一位iOS 開發者,你應該查看這些崩潰報告,了解導致你的應用程序崩潰的原因,然后修復它。

      內存不足報告與其他的崩潰報告的不同之處在于這種類型的報告沒有堆棧跟蹤。當一個內存崩潰發生時,你必須研究一下你的內存使用方式以及你對于內存警告的處理方式。你可能會發現本文檔為你指出幾種內存管理方式是非常有用的。

      包含堆棧跟蹤的崩潰報告需要先進行符號化(symbolicated)才可以進行分析。符號化的過程是將內存地址替換為便于人們閱讀的函數名稱和行號?;偃缒阃ㄟ^Xcode的Organizer窗口獲取崩潰日志,那么該報告將在幾秒鐘后自動進行符號化。否則你需要將.crash文件導入到Xcode的Organizer進行符號化。你可以通過符號化來了解更多細節。

    了解內存不足報告

      當監測到內存不足時,iOS的虛擬內存系統依靠應用程序間的合作來釋放內存。內存不足的通知被發送到所有正在運行的應用程序,并作為內存釋放的請求來進行處理,以期望降低所使用的內存總量。如果內存的壓力始終存在,那么系統可能會終止一些后臺進程來降低內存壓力。如果可以釋放足夠多的內存,那么你的應用程序將繼續運行而不會產生崩潰報告。如果不可以,那么你的程序將被iOS終止,因為此時已沒有足夠的內存來滿足應用程序的需求,一份內存不足的報告將被產生并存儲在設備中。

      內存不足報告與其他崩潰報告的不同之處在于它里面沒有應用程序的堆棧跟蹤。每個進程的內存使用量依據內存頁面的數量進行報告,每個內存頁面量的大小為4KB。你將會看到“拋棄(jettisoned)”緊跟在iOS為了釋放內存而終止的進程名稱后。如果你看到它緊跟在你的應用程序名稱后面,那么可以確定這個應用因為使用了太多的內存而被終止。否則,應該不是內存壓力引起的崩潰。你可以通過查看.crash文件(下一節中進行描述)獲取更多信息。

      當你看到一個內存不足報告時,你更應該研究一下你使用內存的方式和你對內存不足警告的處理方式,而不是去關心在程序終止時你的哪一部分代碼被執行了。內存分配幫助(Memory Allocations Help)列舉了如何使用泄露工具(Leaks Instrument)來發現內存泄露,以及如何使用分配工具(Allocations Instrument's)的標記堆功能來避免被拋棄的內存。內存使用性能指導方案(Memory Usage Performance Guidelines)討論了像其他內存使用秘訣一樣的適當的方案來響應內存不足通知。同時也建議你看一下WWSC2010中的關于使用工具進行高效內存分析的視頻(Advanced Memory Analysis with Instruments)。

      注意

      泄露和分配工具不能跟蹤顯存。你需要使用VM Tracker工具(包含在分配工具模板中)來運行你的應用以便觀察顯存的使用情況。VM Tracker默認是禁用的。為了在你的應用程序使用VM Tracker,請點擊工具,選中“自動快照Automatic Snapshotting”標志或者手工按下“獲取快照(Snapshot Now)”按鈕。

    分析崩潰報告

      和內存不足報告不同,大部分的崩潰報告都包含每一個線程在程序終止時的堆棧跟蹤。本節將討論這類報告。

      符號化

      在崩潰報告中最令人感興趣的部分是在你的應用程序執行終止時的堆棧跟蹤。這個跟蹤和你在調試器中停止執行時的類似,但遺憾的是這里沒有提供被認為是符號的方法或函數的名稱。取而代之的是16位的內存地址和它所指向的你的應用程序或系統框架的可執行代碼。你需要將這些地址映射到符號中。崩潰日志在輸出時并不包含土豪信息,你需要在你分析日志前進行符號化處理。

      符號化——將堆棧跟蹤地址轉化為源代碼方法名稱及行號——需要上次到蘋果應用商店的應用程序的二進制文件以及構建二進制文件時產生的.dSYM文件。這些必須是精確匹配的,否則你的報告將不能完整地符號化?;疽竽惚3置總€分發給用戶(忽略那些分發的細節)的構建和它的.dSYM是一致的。

      注意:

      你必須保存應用程序的二進制文件和.dSYM文件以便于完整地符號化崩潰日志。你應該打包每一個你所提交到iTunes Connect中的構建。.dSYM文件和應用程序的二進制文件應該綁定到一起,不管是基礎版本的構建還是后續版本的構建。即便是相同的源代碼,不同構建的文件也不會弄混。假如你使用“構建并打包”命令,那么它們將會被自動放置到一個合適的位置。雖然任何位置都可以用Spotlight搜索到。

      Xcode的“打包(Archive)”命令使保持二進制文件和.dSYM匹配變得很簡單,當你使用打包命令(通過點擊產品(“PRoduct”)-)打包(Archive)或是按下Shift+Command+B),Xode將會把應用程序的二進制文件及包含符號信息的.dSYM文件收集到一起,并存儲到你的主目錄文件夾下的一個合適位置。你可以在Xcode中的Organizer下的“已打包(Archived)”中知道你所打包的所有應用程序。Xcode在符號化崩潰日志時會自動尋找打包的應用程序,在確認你要的發布應用程序和.dSYM文件匹配的情況下,你可以將它們打包,直接提交到ITunes Connect。

      如果Xcode擁有產生崩潰日志的應用程序的二進制代碼和.dSYM文件,那么它將自動進行符號化。Xcode Organizer符號化所需要提供的是崩潰日志及相應的二進制文件和.dSYM文件。打開Xcode Organizer,選擇“設備(Devices)”選選看,選擇邊欄頂部“文庫(LIBRARY)”下的“設備日志(Device Logs)”,點擊導入按鈕,選擇需要符號化的.crash文件,當這些步驟完成后,Xcode將自動符號化崩潰日志并顯示結果。

異常代碼

在崩潰日志的16行中,你可以看到以一個或多個16進制值開頭一行,這些數字代表的是處理器的特殊代碼,可以為你提供更多的崩潰的本質信息。你可以通過這些代碼辨別應用程序的崩潰是由于程序錯誤(例如,錯誤的內存訪問,發生異常,等等)還是其他的一些原因,例如:

  1)異常代碼0x8badf00d表明應用程序已被iOS終止,原因是watchdog超時引起的。該應用程序花了太長的時間加載,終止或響應系統時間。一個常見的原因是在主線程中進行網絡同步(synchronous networking on the main thread.)。

  2)異常代碼0xbad22222表明一個Voip應用程序因其頻繁重啟而被iOS終止,。

  3)異常代碼0xdead10cc表明一個應用程序被iOS終止,因其在后臺運行時鎖定了系統資源(如聯系人數據庫)。

  4)異常代碼0xdeadfa11表明一個應用程序被用戶強制退出。當用戶第一次按下開關鍵直到“移動滑鎖關機”屏幕出現,然后按下Home鍵。用戶之所以這么做的合理假設是應用程序變得翻譯遲鈍,但不是肯定的,任何應用程序都可以強制退出。

提示:

從多任務窗口中終止一個暫停的應用程序不會產生崩潰日志。一旦一個應用被暫停,它有資格被iOS在任何時間終止,因此不會產生崩潰日志。

<!--EndFragment-->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天堂2024| 成人亚洲欧美一区二区三区| 成人福利在线视频| 亚洲一区精品电影| 91精品国产99久久久久久| 成人在线一区二区| 国产91精品最新在线播放| 揄拍成人国产精品视频| 亚洲自拍偷拍一区| 91成人福利在线| 欧美视频在线观看 亚洲欧| 午夜精品免费视频| 91视频-88av| 亚洲加勒比久久88色综合| 91午夜在线播放| 亚洲国产99精品国自产| 欧美理论在线观看| 97久久精品在线| 国产精品午夜国产小视频| 国产精品精品久久久久久| 亚洲视频在线视频| 亚洲成人久久一区| 欧美激情在线狂野欧美精品| 国产精品嫩草影院一区二区| 欧美一区在线直播| 久久精品夜夜夜夜夜久久| 亚洲男人天堂古典| 97在线视频国产| 成人av电影天堂| 国产婷婷色综合av蜜臀av| 欧美日韩精品在线播放| 日韩电影免费观看在线观看| 国产精品爽黄69天堂a| 伊人久久免费视频| www.久久撸.com| 国产97色在线|日韩| 日本久久亚洲电影| 亚洲xxxx18| 亚洲国产欧美日韩精品| 精品国产一区二区三区久久狼5月| 日韩美女免费观看| 精品久久久香蕉免费精品视频| 国产91精品不卡视频| 亚洲成人a级网| 亚洲欧美激情四射在线日| 蜜臀久久99精品久久久无需会员| …久久精品99久久香蕉国产| 狠狠躁天天躁日日躁欧美| 国产精品自拍网| 狠狠躁天天躁日日躁欧美| 欧美性高潮在线| 欧美日韩人人澡狠狠躁视频| 国产亚洲成av人片在线观看桃| 精品亚洲va在线va天堂资源站| 91在线国产电影| 久久久久久成人精品| 亚洲天堂视频在线观看| 中日韩美女免费视频网站在线观看| 668精品在线视频| 日韩欧美中文在线| 欧美久久精品午夜青青大伊人| 精品国产乱码久久久久久虫虫漫画| 亚洲午夜久久久影院| 午夜欧美大片免费观看| 午夜免费久久久久| 96精品久久久久中文字幕| 一夜七次郎国产精品亚洲| 日本国产高清不卡| 久久免费视频在线观看| 欧美精品久久一区二区| 亚洲欧洲日产国码av系列天堂| 日日噜噜噜夜夜爽亚洲精品| 国产精品白嫩美女在线观看| 中文字幕日韩欧美在线| 欧美视频在线免费看| 色先锋资源久久综合5566| 午夜精品一区二区三区在线播放| 国产美女高潮久久白浆| 午夜精品久久久久久久99热| 久久精品成人欧美大片古装| 性色av一区二区三区在线观看| 日韩在线欧美在线| 国产伦精品一区二区三区精品视频| 911国产网站尤物在线观看| 国产欧美日韩中文字幕在线| 欧美亚洲视频在线看网址| 成人免费观看网址| 精品美女久久久久久免费| 亚洲一区亚洲二区亚洲三区| 欧美日韩国产123| 亚洲男女自偷自拍图片另类| 视频直播国产精品| 亚洲一区制服诱惑| 亚洲人成网站在线播| 欧美黑人狂野猛交老妇| 国产精品久久久久av免费| 国产视频精品一区二区三区| 国产伊人精品在线| 国产一区二区三区在线视频| 青青青国产精品一区二区| 久久夜色精品国产亚洲aⅴ| 欧美wwwxxxx| 欧美激情一区二区久久久| 国产精品视频久| 成人av在线网址| 久久久999成人| 国产第一区电影| 久久网福利资源网站| 欧美小视频在线观看| **欧美日韩vr在线| 国产精自产拍久久久久久蜜| 一本色道久久88亚洲综合88| 精品在线观看国产| 法国裸体一区二区| 国产精品一区二区三| 日本成人黄色片| 午夜精品久久久久久久久久久久久| 91亚洲永久免费精品| 日韩久久午夜影院| 国产精品久久久999| 国产极品精品在线观看| 亚洲国产精品美女| 欧美成人免费网| 国产欧美韩国高清| 一区二区三区日韩在线| 亚洲91av视频| 欧美亚洲视频在线观看| 日韩视频免费中文字幕| 91精品久久久久久久久久| 亚洲91精品在线| 中文字幕欧美国内| 91高清免费在线观看| 国产乱人伦真实精品视频| 日韩亚洲成人av在线| 91精品国产91久久久久福利| 91九色蝌蚪国产| 欧美孕妇性xx| 日韩免费在线观看视频| 午夜精品美女自拍福到在线| 日韩av免费观影| 成人国产精品日本在线| 欧美成人免费小视频| 北条麻妃一区二区在线观看| 国产成人精品在线视频| 中文字幕国产精品| 一区二区三区无码高清视频| 91九色视频导航| 精品久久久国产精品999| 91av在线免费观看| 国产成人亚洲综合青青| 91国产美女在线观看| 欧美日韩在线免费观看| 中文字幕日韩电影| 国产精品久久久久av| 午夜精品久久久久久久99热| 成人黄色短视频在线观看| 亚洲老板91色精品久久| 久久躁狠狠躁夜夜爽| 92国产精品视频| 国产精品av在线| 欧美极品在线视频| 精品美女国产在线| 日韩美女福利视频| 琪琪第一精品导航|