Tôi nhận mã = 1 hoặc mã = 2 đối với lỗi EXC_BAD_ACCESS. Tôi tự hỏi sự khác biệt giữa code = 1 và code = 2 là gì?sự khác nhau giữa mã = 1 và mã = 2 trong EXC_BAD_ACCESS là gì?
16
A
Trả lời
22
Mã = 1 là KERN_INVALID_ADDRESS và mã = 2 là KERN_PROTECTION_FAILURE. Cả hai đều là giải thích trong "Technical Note TN2123 CrashReporter":
Các hình thức phổ biến nhất của ngoại lệ là:
- EXC_BAD_ACCESS/KERN_INVALID_ADDRESS - Điều này là do sợi truy cập vào bộ nhớ unmapped. Nó có thể được kích hoạt bằng cách truy cập dữ liệu hoặc tìm nạp lệnh; phần Tiểu bang Đề xuất mô tả cách thức cho biết sự khác biệt.
- EXC_BAD_ACCESS/KERN_PROTECTION_FAILURE - Đây là do chủ đề cố gắng ghi vào bộ nhớ chỉ đọc. Đây là luôn do truy cập dữ liệu gây ra.
Các mã được định nghĩa trong <mach/kern_return.h>
:
#define KERN_INVALID_ADDRESS 1
/* Specified address is not currently valid.
*/
#define KERN_PROTECTION_FAILURE 2
/* Specified memory is valid, but does not permit the
* required forms of access.
*/
và trong <mach/exception_types.h>
nó được ghi chép lại rằng mã cho một EXC_BAD_ACCESS là một kern_return_t
:
#define EXC_BAD_ACCESS 1 /* Could not access memory */
/* Code contains kern_return_t describing error. */
/* Subcode contains bad memory address. */
Các vấn đề liên quan
- 1. Sự khác nhau giữa hai mẫu mã này là gì?
- 2. Sự khác nhau giữa mã dài và dài trong mã Android là gì?
- 3. Sự khác nhau giữa hai mã javascript là gì?
- 4. Sự khác nhau giữa 1 và '1 trong Lisp là gì?
- 5. Sự khác nhau giữa 1..5, [* 1..5] và [1..5] trong Groovy là gì?
- 6. Sự khác nhau giữa Lisp-1 và Lisp-2 là gì?
- 7. Sự khác nhau giữa mã hóa và mã hóa
- 8. Sự khác nhau giữa KERN_INVALID_ADDRESS và KERN_PROTECTION_FAILURE là gì?
- 9. Sự khác nhau giữa int x = 1 và int x (1) trong C++ là gì?
- 10. Sự khác nhau giữa i = i + 1 và i + = 1 trong vòng lặp 'for' là gì?
- 11. Haskell: Sự khác nhau giữa (+1) và (\ x-> x + 1) là gì?
- 12. Sự khác nhau giữa ký tự mã hex (\ x) và unicode (\ u) là gì?
- 13. Sự khác biệt giữa mã và các chỉ thị chặn mã trong ReST là gì?
- 14. Sự khác nhau giữa trẻ em và mã con trong JavaScript là gì?
- 15. Sự khác nhau giữa = và - trong haml khi viết mã ruby là gì?
- 16. Sự khác nhau giữa launch.json và task.json trong mã studio trực quan là gì?
- 17. Sự khác biệt giữa "2 * 2" và "2 ** 2" trong Python là gì?
- 18. Sự khác biệt giữa trang mã và mã hóa ký tự là gì?
- 19. EXC_BAD_ACCESS trên mã UIAlertview = 1
- 20. Mã EXC_BAD_ACCESS 2 trên UIAlertView trong iOS6
- 21. Sự khác biệt giữa "1.0f" và "1.f" là gì?
- 22. Sự khác nhau giữa abolish/1 và retractall/1 là gì?
- 23. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 24. Sự khác nhau giữa 3/2 và -3/2 là gì?
- 25. Sự khác biệt chính giữa tiêu chuẩn mã hóa PSR-2 và tiêu chuẩn mã Symfony2 cho phpcs là gì?
- 26. Sự khác nhau giữa: = và = trong MySQL là gì?
- 27. Sự khác biệt giữa "mã hóa", "bộ ký tự" và "trang mã" là gì?
- 28. Sự khác nhau giữa IDbSet.Add và DbEntityEntry.State = EntityState.Added là gì?
- 29. Sự khác nhau giữa% và vw trong css là gì?
- 30. Khi biên dịch mã x64, sự khác nhau giữa "x86_amd64" và "amd64" là gì?
Về Unix, nó cùng phân biệt với SIGBUS và SIGSEGV. –