簡體   English   中英

當設備未連接到Xcode時崩潰應用程序

[英]Crashing app when device not connected to Xcode

我的iPhone應用程序遇到了這種奇怪的行為。 在使用Xcode進行調試時,它在設備上運行正常,但是當設備未連接到我的計算機時它在設備上運行時,它幾乎立即崩潰。 不用說,我發現這有點令人不安,因為我不確定如何調試它。

任何人都有關於發生了什么或如何調試此類問題的想法?

當我重新連接設備並查看以下內容時,我查看了崩潰報告:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000070
Crashed Thread:  6

Thread 6 Crashed:
0   libobjc.A.dylib                 0x300102ac 0x3000c000 + 17068
1   myapp                            0x000033ba 0x1000 + 9146
2   myapp                           0x0000adc8 0x1000 + 40392
3   Foundation                      0x30553356 0x30501000 + 336726
4   Foundation                      0x305025fe 0x30501000 + 5630
5   libSystem.B.dylib               0x31d6a6ea 0x31d46000 + 149226

並且控制台日志具有以下內容:

Sun Sep 27 19:59:50 unknown ReportCrash[455] <Notice>: Formulating crash report for process myapp[453]
Sun Sep 27 19:59:50 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.yourcompany.myapp[0x2fba]) Job appears to have crashed: Bus error
Sun Sep 27 19:59:50 unknown com.apple.mobile.lockdown[14] <Notice>: Could not receive size of message
Sun Sep 27 19:59:50 unknown lockdownd[14] <Error>: (0x834400) handle_connection: Could not receive internal message #2 from myapp Killing connection
Sun Sep 27 19:59:50 unknown SpringBoard[23] <Warning>: Application 'myapp' exited abnormally with signal 10: Bus error

非常感謝

您可以隨時訪問應用程序崩潰的位置。 打開build文件夾上的終端並運行以下命令:

atos -arch armv6 -o myapp.app/myapp 0x000033ba

它將返回文件和行所在的位置。 它有點用處。

只是為了概括@ seppo0010的答案並在2011年更新它:


首先,在Xcode4中,設備日志(在管理器窗口中找到)將顯示崩潰的線程,文件和行號,因此甚至可能不需要。 可以按應用程序,類型和日期/時間對崩潰進行排序。 典型的崩潰將包括以下內容:

 Thread 1 name: Dispatch queue: someQueue Thread 1 Crashed: 0 MyApp 0x00003e14 -[MyAppViewController someMethod:withParam1:andParam2:] (MyAppViewController.m:254) 


但是,如果您決定使用atos,請注意以下事項:

  • 請確保更改-arch標志以匹配運行代碼的任何體系結構。 所以,對於我的iPhone 4,我會進入-arch armv7

  • Xcode 4將構建路徑放在不同的位置,因此請務必檢入Xcode > Prefs > Locations 實際構建的路徑可能如下所示: /Users/OldMcStopher/Library/Developer/Xcode/DerivedData/MyApp-someUglyString/Build/Products/Debug-iphoneos

  • -o標志正在查找實際的二進制文件,而不僅僅是myapp.app包裝器,所以一旦在Debug-iphoneos文件夾中(或者調試.app構建所在的任何地方),將-o標志設置為MyApp.app/MyApp ,喜歡@ seppo0010正確陳述。

atos手冊頁描述如下:

atos命令將數字地址轉換為其符號等效項。 如果完整的調試符號信息可用,例如位於.app旁邊的.app.dSYM中,則atos的輸出將包括文件名和源行號信息。

它可以在這里找到: http//developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/atos.1.html

(或者與終端的man atos 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM