2011-10-14 27 views
6

Trong Xcode 4.x Tôi đã chỉnh sửa sơ đồ Run của mình thành 'Enable Guard Malloc' vì tôi có lỗi malloc nondescript tôi cần theo dõi . Tôi biết tôi cần chạy trong trình mô phỏng để sử dụng tính năng này. Tuy nhiên, khi tôi làm như vậy các ứng dụng ngay lập tức bị đóng băng và Xcode chỉ cho tôi một vết đống trông như thế này:Xcode 4: Không thể sử dụng Enable Guard Malloc do lỗi dylib cho giả lập iPad

Stack trace in Xcode 4.x

Tôi đã googled xung quanh để tìm một giải pháp, nhưng cho đến nay không có niềm vui. Nó đã được báo cáo ở nơi khác mà tôi nên thiết lập một biến môi trường trong chương trình của tôi:

DYLD_INSERT_LIBRARIES -> /usr/lib/libgmalloc.dylib 

Tuy nhiên điều này không giải quyết được vấn đề. Tôi cũng đã thử 'lsystem' làm giá trị, nhưng điều đó cũng không hiệu quả.

Ai có thể đề xuất giải pháp cho vấn đề dylib này, hoặc có thể đề nghị thay thế cho 'Enable Guard Malloc' để xác định vị trí vượt quá diện tích đống malloc'd?

CẬP NHẬT

Để làm rõ, đây là loại lỗi tôi đang đối phó với:

malloc: *** error for object 0x2b4b54: incorrect checksum for freed object - object was probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug 

Tôi đã thử đặt một breakpoint biểu tượng của malloc_error_break, tuy nhiên nó vẫn phá vỡ 'ngẫu nhiên 'khi các vấn đề về bộ nhớ thay vì ở điểm vượt quá một vùng được phân bổ.

+0

Vui lòng bao gồm dấu vết ngăn xếp dưới dạng văn bản; Tôi không thể tìm thấy trang này dễ dàng với Google! –

+0

Tôi gặp vấn đề tương tự, ngay cả trong một dự án tiện ích trống hoàn toàn mới. Dường như có cái gì đó bị hỏng trên cài đặt của tôi nhưng cho đến nay không có may mắn trong việc tìm ra nó. Khi tôi chuyển sang trình mô phỏng iOS 4.3, sự cố đã biến mất do đó có vẻ như đã xảy ra sự cố cụ thể với trình mô phỏng iOS 5. – russbishop

Trả lời

2

Để giúp với gỡ lỗi bạn có thể đặt MallocStackLogging, sau đó khi App của bạn bị treo, gõ này trong gdb console:

(gdb) info malloc-history 0x543216 

Thay 0x543216 với địa chỉ của đối tượng gây ra vụ tai nạn, và bạn sẽ nhận được một dấu vết ngăn xếp hữu ích hơn nhiều và nó sẽ giúp bạn xác định chính xác dòng trong mã của bạn đang gây ra sự cố.

See this article for more detailed instructions.

+0

Tuyệt vời, cảm ơn chown – KomodoDave

+0

Np, vui lòng trợ giúp. – chown

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