2009-04-21 45 views
34

Thỉnh thoảng ứng dụng iPhone của tôi gặp sự cố với một crashlog lạ, đọc mã ngoại lệ là 0x8badf00d. Stacktraces hiển thị các ảnh chụp nhanh ngẫu nhiên về thực thi ứng dụng, nhưng không có gì đáng ngờ. Điều này xảy ra rất hiếm khi và tôi không thể tìm ra cách tái tạo nó. Có ai biết thêm về loại ngoại lệ và mã ngoại lệ này không?8badf00d có nghĩa là gì?

Dưới đây là một đoạn trích từ crashlogs tôi:

Exception Loại: 00.000.020
Exception Codes: 0x8badf00d
Nổi bật chủ đề: 0

Application Thông tin cụ thể:
Không thể tắt

Chủ đề 0:
...
< gì đáng ngờ đây>
...

Unknown chủ đề đâm với hương vị lạ: 5, state_count: 1

+2

ai đã thực sự trả lời câu hỏi mặc dù họ đều explanined mã lỗi. Bạn có thể cho chúng tôi biết bạn đang làm gì để gây ra ngoại lệ hay không. –

Trả lời

79

0x8badf00d là mã lỗi mà các cơ quan giám sát đặt ra khi một ứng dụng mất nhiều thời gian để khởi động hoặc chấm dứt. Xem tài liệu Crash Reporting for iPhone OS Applications của Apple

+0

Cuối cùng là câu trả lời cho câu hỏi, cảm ơn bạn! Tôi sẽ cần phải điều tra thêm để xác nhận đây là lý do thực sự cho sự cố của tôi, nhưng vì bạn cung cấp liên kết đến một nguồn chính thức, tôi sẽ chấp nhận nó. –

+3

Thông thường nó có nghĩa là bạn có vòng lặp vô hạn ở đâu đó hoặc bạn đang đợi mạng IO trên chuỗi chính. Ngoài ra còn có khả năng người dùng đang loại bỏ ứng dụng. – rpetrich

+0

+1 để trả lời câu hỏi. –

1

Đó là một mã thất bại thêm bởi một dev với một cảm giác hài hước. Bởi vì hệ thập lục phân sử dụng chữ cái cũng như số, nên có thể xuất hiện các số hex giống như từ tiếng Anh, chẳng hạn như "0xdeadbeef", v.v. Tôi chắc chắn rằng ngoại lệ có ý nghĩa cụ thể, nhưng nếu không có triệu chứng chính liên kết với nó, bạn có thể bỏ qua nó mà không có quá nhiều mối quan tâm.

1

Đó là ý tưởng của một số lập trình viên về một trò đùa. Bạn phải chọn một số cho mã của bạn, nhưng số lượng không nhất thiết có nghĩa là bất cứ điều gì trong chính nó. 8badf00d chỉ là một cách khác để viết số 2.343,432,205, và được chọn vì nó trông 'vui' khi được trình bày trong hex cho một bản ghi ngoại lệ.

+6

Tôi muốn tranh luận rằng nó không chỉ "nhìn" hài hước, nhưng nó là buồn cười! :-) –

-6

từ wikipedia 0xBAADF00D ("thực phẩm xấu") được sử dụng bởi LocalAlloc của Microsoft (LMEM_FIXED) để chỉ ra bộ nhớ heap được cấp phát uninitialised khi heap gỡ lỗi được sử dụng. [7]

+0

LocalAlloc của Microsoft đưa vào hình ảnh ở đâu? –

7

Nếu bạn nhận được Exception Type: 00000020Exception Codes: 0x8badf00d thì đó là báo cáo sự cố cơ quan giám sát thời gian chờ. Mã ngoại lệ 0x8badf00d được gọi là "ate bad food".

Phổ biến nhất reason for this crash is synchronous activity on main thread. Khắc phục là switch to asynchronous activity trên chuỗi chính.

Screenshot for Apple document

Refer this Apple document for more detail.