2010-03-03 31 views
7

Gần đây tôi đã phát hành một ứng dụng khoảng một tháng trước, nó đã được thử nghiệm kỹ lưỡng bởi bản thân, đối tác của tôi và người thử nghiệm beta. Gần đây, một người dùng đã liên lạc với tôi về ứng dụng thậm chí không thể mở (bị treo sau khi màn hình khởi động), họ có hệ điều hành chính xác và họ đã thử cài đặt lại.Ứng dụng iPhone mục tiêu-C EXC_BREAKPOINT (SIGTRAP)

Tôi hỏi cho nhật ký sự cố và họ đã gửi cho tôi nó ...

Exception Type: EXC_BREAKPOINT (SIGTRAP) 
Exception Codes: 0x00000001, 0xe7ffdefe 
Crashed Thread: 0 

Thread 0 Crashed: 
0 dyld       0x2fe01060 0x2fe00000 + 4192 
1 dyld       0x2fe088d4 0x2fe00000 + 35028 
2 dyld       0x2fe0196c 0x2fe00000 + 6508 
3 dyld       0x2fe01048 0x2fe00000 + 4168 

Thread 0 crashed with ARM Thread State: 
    r0: 0x2fe23ca0 r1: 0x00000000  r2: 0x2fe23ca0  r3: 0x00000000 
    r4: 0x2ffff4e0 r5: 0x2ffff4bc  r6: 0x2fe005c0  r7: 0x2ffffb00 
    r8: 0x00000004 r9: 0x2fe57cf0  r10: 0x2fe236c8  r11: 0x00000009 
    ip: 0x0000018d sp: 0x2ffff5b8  lr: 0x2fe088dc  pc: 0x2fe01060 
    cpsr: 0x00000010 

Binary Images: 
0x2fe00000 - 0x2fe22fff dyld ??? (???) <f6a50d5f57a676b54276d0ecef46d5f0> /usr/lib/dyld 

tôi dường như không thể tìm thấy một vấn đề trong phạm vi ứng dụng của tôi, những gì loại của các vấn đề nguyên nhân EXC_BREAKPOINT (SIGTRAP)? Tôi giả định rằng lỗi nằm trong AppDelegate của tôi vì nó bị treo ngay sau màn hình khởi động.

+0

tôi đã báo cáo sự cố từ một người dùng mà trông giống hệt như thế này (xuống địa chỉ hex). Bạn đã bao giờ tìm ra nguyên nhân gốc rễ chưa? – pgb

+0

Không, tôi không nói, tôi bảo họ phải gỡ bỏ hoàn toàn và tải lại. Tôi đã không nhận được phản hồi từ họ, do đó, hoặc là họ đã từ bỏ hoặc đã làm việc. Đó là lời phàn nàn duy nhất mà tôi nhận được. – avizzini

Trả lời

-1

Hãy thử các bước sau từ Apple's tech note on reading crash files. Nó giải thích làm thế nào để biến mã hex thành các ký hiệu (tên lớp, tên phương thức, tên biến vv) từ ứng dụng của bạn.

Signal.h chứa một danh sách các lỗi như SIGTRAP được định nghĩa là:

#define SIGTRAP 5 /* trace trap (not reset when caught) */ 
1

Đây là một vết đống khá lạ. Nó bị lỗi trong dyld (bộ tải thư viện động). Điều đó cho thấy rằng nó gặp sự cố khi tải thư viện động hoặc Khung, điều đó có nghĩa là nó đang tải mã hệ thống (vì bạn không thể có thư viện động thứ ba trên iphone chuẩn). Chú ý như thế nào trong phần Hình ảnh nhị phân, mã của bạn thậm chí không có vẻ được tải (hoặc là phần còn lại của kết xuất cắt ngắn)? Bạn có tải bất kỳ thư viện động nào bằng tay (dlopen() hoặc tương tự) không? Ngay cả khi bạn đã có, bạn mong đợi main() để được trên ngăn xếp nếu chương trình của bạn đã thực sự tải ....

Khi bạn nói rằng họ đã thử cài đặt lại, tôi cho rằng bạn có nghĩa là ứng dụng của bạn? Điều đó có nghĩa là họ đã xóa ứng dụng của bạn và sau đó cài đặt lại ứng dụng đó hoặc một cái gì đó khác? Nguyên nhân có thể xảy ra nhất trong tâm trí là tham nhũng của gói. Nhưng bạn nghĩ rằng việc xóa và cài đặt lại sẽ khắc phục điều đó. Tích cực hơn sẽ bị xóa, khởi động lại, sau đó cài đặt lại.

Câu hỏi tiếp theo của tôi là liệu đây có phải là iPhone đã bẻ khóa hay không. Tôi muốn yêu cầu người dùng khởi động lại iPhone nếu họ chưa có. Tôi thậm chí còn bị cám dỗ để yêu cầu họ thực hiện khôi phục hệ điều hành, nhưng đó luôn là điều khó xử khi yêu cầu khách hàng thực hiện.

+0

Tôi đã yêu cầu họ gỡ cài đặt ứng dụng rồi cài đặt lại, không chắc chắn liệu họ có khởi động lại hay không nhưng tôi sẽ yêu cầu họ thử. Tôi không thực hiện bất kỳ thư viện thủ công nào. Nếu tồi tệ hơn đến tồi tệ hơn tôi sẽ thấy nếu họ sẵn sàng để làm một cài đặt lại hệ điều hành. Tôi không nghĩ rằng nó đã bị bẻ khóa ... Tôi đã phải giúp họ chỉ để tìm phiên bản hệ điều hành của họ và các bản ghi sự cố, và họ thậm chí không chắc chắn về kích thước của iPod touch mà họ có. Vì vậy, tôi không nghĩ rằng họ đang gõ để jailbreak nhưng tôi có thể sai. – avizzini

0

Có một quy tắc chung về ngón tay cái với nhật ký sự cố: Nếu backtrace là vô ích, hãy xem đầu ra nhật ký bảng điều khiển.

Trong trường hợp này, điều có thể xảy ra là bạn đang sử dụng những thứ không có trong phiên bản hệ điều hành cũ hơn. Khi dyld (bộ tải động) cố gắng giải quyết các biểu tượng tại thời gian tải, nó không tìm thấy một số trong số chúng, và biểu tượng hoặc thư viện không bị liên kết yếu. Nhật ký giao diện điều khiển phải cho biết biểu tượng/thư viện nào không tải được.

Trong trường hợp thông thường, bạn chỉ có thể thay đổi khung từ "Bắt buộc" thành "Yếu".

4

Tôi cũng đã nhận được lỗi này và sửa lỗi đó. Người này đang chạy OS3 rất có thể và bạn đang sử dụng một khối mã từ OS4, bạn cần thiết lập một liên kết yếu trên thư viện để nó có thể tải đúng cách. trong cài đặt của bạn xây dựng cho LLVM -weak_library /usr/lib/libSystem.B.dylib

cũng đã thảo luận ở đây iOS 4 app crashes at startup on iOS 3.1.3: Symbol not found: __NSConcreteStackBlock

Các vấn đề liên quan