您現在的位置是:電腦技術吧?>? 編程技術 ??>??系統的特性和分析方法,系統的分析方法及各自的優點??>??正文詳情

系統的特性和分析方法,系統的分析方法及各自的優點

魏靈珊2019-12-14 11:02:28 人圍觀
簡介分析系統穩定性的方法Xcode 4.3符號崩潰的位置與舊版本不一致。/應用程序/Xcode.app/Contents/Developer/Platforms/iPhoneOS.pl系統分析的方法有哪些

Xcode 4.3的symbolicatecrash的位置和老版本的不一致了。

  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/  Xcode 4.3之前  /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash  一. 問題的產生  在xcode的Window-Orgnizer-Device Logs里面可以看到連著的iphone(ipad)設備上面程序crash的記錄,但設備上的一個crash記錄只能同步一次,  一旦在某臺Mac上查看了Device Logs,設備上的crash文件就都會放到這臺Mac上。

  從Device Logs里面看crash文件,會發現有時候崩潰的信息里面有代碼的函數名,有時候卻只有函數地址(如下),這個是怎么回事呢?  Thread 0 Crashed:  0 libobjc.A.dylib 0x300c87ec 0x300bb000 55276  1 MobileLines 0x00006434 0x1000 21556  2 MobileLines 0x000064c2 0x1000 21698  3 UIKit 0x30a740ac 0x30a54000 131244  4 UIKit 0x30a66110 0x30a54000 74000  5 UIKit 0x30a6565c 0x30a54000 71260  6 GraphicsServices 0x3169b0b4 0x31696000 20660  7 GraphicsServices 0x3169d818 0x31696000 30744  8 IOMobileFramebuffer 0x31f3e8f8 0x31f3d000 6392  9 com.apple.framework.IOKit 0x30f342b8 0x30f30000 17080  10 CoreFoundation 0x3025ced4 0x30229000 212692  11 CoreFoundation 0x3025bed6 0x30229000 208598  12 CoreFoundation 0x3025b584 0x30229000 206212  13 GraphicsServices 0x316998e4 0x31696000 14564  14 UIKit 0x30a5e308 0x30a54000 41736  15 UIKit 0x30a671dc 0x30a54000 78300  16 MobileLines 0x00002090 0x1000 4240  17 MobileLines 0x0000202c 0x1000 4140  二. 問題的原因  其實這里關系到編譯后的兩個文件:MyApp.app以及MyApp.app.dSYM,如果崩潰的程序正好是這臺Mac編譯出來的話,并且對應的同時  編譯出來的app和dSYM文件還在build目錄下的話(即還沒編譯過其他更新的版本),Orgnizer會把crash文件的函數名解析出來,如果沒了的話,就是  光禿禿的地址了,這個時候即使拿同樣的代碼再次編譯,也不能解析出代碼信息來了,所以發布的版本一定要保留.app和.dSYM文件。

  三. 解決的方法  如果出現了只有地址的情況,只要.app和.dSYM文件還在的話,symbolicatecrash工具就可以把對應的函數名解析出來。

具體使用symbolicatecrash工具  和.app及.dSYM文件,解析函數名的方法如下:  1. 新建一個專門的目錄進行解析處理,如: /crash  2. 把symbolicatecrash工具從原來的位置拷貝到/crash。

因為在framework里面finder不能直接進去,可以用命令行工具進行拷貝,命令如下:  $ cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash /crash  3. 把對應的.app和.dSYM文件拷貝到/crash,再把需要解析的crash文件也拷貝到/crash  4. 假設crash文件是MyApp_2011-xxx-iPad.crash, .dSYM文件是MyApp.app.dSYM,然后把MyApp.app也和MyApp.app.dSYM文件放在一起,再使用如下命令進行解析:  $ ./symbolicatecrash MyApp_2011-xxx-iPad.crash MyApp.app.dSYM MyApp_symbol.crash  如果解析成功了,那么就會有函數名了(如下),如果解析不成功那么就是提供的.app和.dSYM文件與報出crashreport的版本不一致的緣故。

  Thread 0 Crashed:  0 libobjc.A.dylib 0x300c87ec objc_msgSend 20  1 MobileLines 0x00006434 -[BoardView setSelectedPiece:] (BoardView.m:321)  2 MobileLines 0x000064c2 -[BoardView touchesBegan:withEvent:] (BoardView.m:349)  3 UIKit 0x30a740ac -[UIWindow sendEvent:] 264  4 UIKit 0x30a66110 -[UIApplication sendEvent:] 248  5 UIKit 0x30a6565c _UIApplicationHandleEvent 4088  6 GraphicsServices 0x3169b0b4 PurpleEventCallback 428  7 GraphicsServices 0x3169d818 HeartbeatVBLCallback 152  8 IOMobileFramebuffer 0x31f3e8f8 IOMobileFramebufferNotifyFunc 124  9 com.apple.framework.IOKit 0x30f342b8 IODispatchCalloutFromCFMessage 304  10 CoreFoundation 0x3025ced4 __CFMachPortPerform 72  11 CoreFoundation 0x3025bed6 CFRunLoopRunSpecific 2364  12 CoreFoundation 0x3025b584 CFRunLoopRunInMode 44  13 GraphicsServices 0x316998e4 GSEventRunModal 268  14 UIKit 0x30a5e308 -[UIApplication _run] 404  15 UIKit 0x30a671dc UIApplicationMain 1064  16 MobileLines 0x00002090 main (main.m:16)  17 MobileLines 0x0000202c start 44  首先查看crash log中的崩潰線程,假如是這樣的:  Thread 0 Crashed:  0 libobjc.A.dylib 0x00003ec0 objc_msgSend 24  1 MyApp 0x000036d2 01000 9938  我們得到了用戶發生崩潰情況的內存地址:0x000036d2  然后回到我們應用程序的build目錄,目錄下一定要包含MyApp.app 和MyApp.app.dSYM兩個文件。

  在控制臺使用dwarfdump命令,解析出內存地址,如:  dwarfdump lookup 0x000036d2 arch armv6 MyApp.app.dSYM  輸出信息如下:

版權聲明:本文由 魏靈珊 整理編輯。

原標題:信號與系統的分析方法,系統分析法

轉載注明出處:http://www.dn9ww09s.icu/program/15444.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • ios 10,ios12.2

    ios 10,ios12.2 相關圖片ios12.1.3我的一個同事問我如何學習IOS。我不需要編碼就能生產產品。好吧,是的,我不需要有能力,但如果可以,我可以更好地與程序員溝通。至少我們能聽懂同樣的語言。讓我推薦一...

  • 碰撞檢測有啥用,opcode碰撞檢測

    碰撞檢測有啥用,opcode碰撞檢測 相關圖片Qt碰撞檢測我們設置要檢測的碰撞的物理設置(以下我們稱之為物理體x x)XX。Physicsbody=skphysicsbody(矩形大小:cgsize(x:100,y:1cocos碰撞檢測...

  • apk轉換ios,蘋果轉換器

    apk轉換ios,蘋果轉換器 相關圖片安卓數據轉到ios本文主要介紹了IOS開發中時間轉換方法的集合。在開發IOS程序時,有時需要將時間格式調整為所需的格式。此時,我們可以使用nsdateformatter類來處理它ios12.1.4怎么樣...

  • cors實現跨域訪問,cors跨域訪問示例

    cors實現跨域訪問,cors跨域訪問示例 相關圖片cors實現請求跨域本文介紹了利用Ajax實現跨域訪問的三種解決方案,具有很強的實用性。我推薦第三個。你可以集中精力。首先,什么是跨域?讓我們回顧一下域名地址的組成:http://c...

  • ios開發條件,ios開發軟件

    ios開發條件,ios開發軟件 相關圖片手機ios開發目前,大多數企業iOS應用主要基于報表和官方文檔審批,應用程序的發展趨勢將朝著Web的方向發展,但本地應用程序具有無可比擬的靈活性。如何在IOS上本地化網頁?一蘋果...

  • asp運行,asp.net mvc5

    asp運行,asp.net mvc5 相關圖片net和web本文主要介紹了asp.net網站停止運行的原因記錄的具體實現。必須記錄導致網站停止運行的原因。下面是具體的實現方法。代碼如下:protected void apiis支持asp嗎...

  • jsp服務器都有哪些,jsp是在服務器運行

    jsp服務器都有哪些,jsp是在服務器運行 相關圖片web服務器 應用服務器Java只能獲取一次,而且到達頁面的時間是靜態的。然而,通過JS與Java的合作,Java巧妙地實現了這一功能。Java獲取服務器時間,并將其動態顯示到JSP頁jsp上傳文件到...

  • 簡體轉繁體,簡體字繁體字

    簡體轉繁體,簡體字繁體字 相關圖片word繁體轉簡體%Test1=新的?.中國?Test2=新信譽。China response.write big5andgb2312(test1,1)response.writ中的繁體字...

  • mongodb php,php怎么使用mongodb

    mongodb php,php怎么使用mongodb 相關圖片nginx php說到PHP和mongodb,我們首先要介紹一下PHP的官方手冊。網站是:http://us.php.net/manual/en/book.mongo.php。接nginx phpfpm...

  • 給數組排序,對數組進行排序

    給數組排序,對數組進行排序 相關圖片數組隨機排序本文給出了一個在JavaScript中實現隨機數組排序的例子。與您分享以供參考。具體實現方法如下:?1234函數洗牌(o){for(VaR J,x,I=o.le快速排序數組...

熱評文章

  • 如何判斷數組是否為空,數組為空怎么判斷

    如何判斷數組是否為空,數組為空怎么判斷 相關圖片js怎么判斷一個數組為空一。Isset函數:判斷變量是否初始化注意:不判斷變量是否為空,可用于判斷數組中的元素是否已定義。注:當使用ISSET判斷數組元素是否已初始化時,其效率約...

  • jsp標簽庫有哪些,java標簽庫

    jsp標簽庫有哪些,java標簽庫 相關圖片jsp開發網站JSTL標簽是sun率先與Apache社區合作的產品。不幸的是,自從它出現以來,它已經是一種過時的技術。Sun的軟件架構師似乎缺乏從客戶的角度考慮技術方向的能力jsp jstl...

  • 打開相機閃光燈,相機的閃光燈在哪里打開

    打開相機閃光燈,相機的閃光燈在哪里打開 相關圖片照相機閃光燈怎么打開今天,我想和大家分享一下如何調用iPhone的攝像頭功能并打開閃光燈。我不懂一些代碼,其中許多是從網上的其他代碼借來的。IOS有兩種拍攝照片和視頻的方式:...

  • 因為程序錯誤是什么,無法完成請求因為程序錯誤

    因為程序錯誤是什么,無法完成請求因為程序錯誤 相關圖片電腦老是彈出應用程序錯誤我以前沒有使用過XP系統(XP在大學時我就用過,但從那以后我就沒有使用過XP了。那時候我不喜歡它漂亮的界面,呵呵。),我沒有遇到過這樣的問題。今天,...

  • asp是什么,asp和php

    asp是什么,asp和php 相關圖片asp網頁本文主要介紹了asp.net連接mysql數據庫的兩種方法和實例。它使用官方的MySQL組件和odbc.net。您可以參考以下方法給您的朋友:使用MySQL官方net是啥...

  • 關閉iOS更新,ios更新怎么關閉

    關閉iOS更新,ios更新怎么關閉 相關圖片ios關閉自動更新在IOS應用程序開發中,可以打開虛擬鍵盤進行輸入操作的視圖對象有三種,但是如何關閉虛擬鍵盤還沒有提供一種自動的方法。這需要我們自己來實現。首先,按鍵盤上...

  • iOS3D游戲,ios 3dtouch

    iOS3D游戲,ios 3dtouch 相關圖片ios3dtouch在哪開首先需要獲取mono.data.sqlite.dll文件和system.data.dll文件。如果你在MAC上使用unity,那就太悲劇了。我找不到這兩個文件,3dtouch怎么用...

  • emlog友情鏈接插件,Typecho插件

    emlog友情鏈接插件,Typecho插件 相關圖片typecho優酷插件本文主要介紹Typecho插件編寫教程(1):HelloWorld。本文介紹了插件的文件結構、插件信息、插件結構、插件過程等內容。對于你的朋友,你可以參考一下老typecho301插件...

  • aspx的數據傳遞到aspxcs,.cs

    aspx的數據傳遞到aspxcs,.cs 相關圖片js在aspx沒反應本文主要介紹了在后臺刷新ASPX頁面的四種方法。凈現金。對于朋友,請參考以下內容:回復。重定向(請求。網址。Tostring());響應。寫入(腳本語言=Jaspx是什么語言...

  • asp變量查詢代碼,季度查詢asp代碼

    asp變量查詢代碼,季度查詢asp代碼 相關圖片asp網站表格代碼%Response. Write scriptalert ('19981) if request (ID) =;aspajax批量查詢...

關注微信

变脸官网查询