2010-09-24 43 views
17

Ok, tôi nghĩ rằng tôi đã thấy tất cả ngay bây giờ.Gỡ lỗi XCode và xây dựng bản phát hành khi gỡ lỗi

Trong khoảng 24 giờ, tôi đã cố gắng gỡ lỗi ứng dụng của mình, cố gắng tìm ra nơi tất cả các sự cố lạ xảy ra đột ngột. Tôi đã gỡ lỗi thông qua chế độ Simulator/Debug. Như thường lệ, khi tôi nhấn một điểm ngắt, tôi có thể thấy giá trị của các biến (phần lớn thời gian). Sau đó, đột nhiên tôi đã không thể xem các biến không có vấn đề gì tôi đã làm (btw, im nói về chuột lơ lửng như đối với một số lý do ngu ngốc xcode của tôi vô hiệu hóa tất cả các công cụ gỡ lỗi từ trình đơn gỡ lỗi).

Câu chuyện dài ngắn gọn, ngoài sự mất mát tuyệt đối về những việc cần làm, tôi quyết định gỡ lỗi bằng chế độ Phát hành. Bây giờ tôi có thể nhấn breakpoints và xem nội dung của các biến của tôi. Và điều thậm chí còn khó hiểu hơn là bây giờ xcode cho tôi cái nhìn toàn diện hơn về các biến mà im 'đang xem' (lơ lửng).

Tôi biết Apple thích làm những việc khác nhau. Nhưng cái quái gì thế !? Ai đó có thể vui lòng tát tôi và sau đó cho tôi biết những gì im không hiểu ở đây?

Trả lời

24

Trước tiên, cấu hình "Gỡ lỗi" và "Phát hành" chỉ là tên, bạn cũng có thể đặt tên cho chúng là "Jon" và "Carla" nếu bạn muốn. Chúng chỉ là tên cho một bộ cấu hình mà bạn có thể sửa đổi và bạn có thể tinh chỉnh chúng để ví dụ cấu hình "Debug" không thích hợp để gỡ lỗi nữa. Vì vậy, nếu bạn (vô tình) vô hiệu hóa tạo ra các biểu tượng gỡ lỗi trong cấu hình "Gỡ lỗi" của bạn, bạn sẽ nhận được chính xác những gì bạn mô tả.

Đi tới "Dự án" -> "Chỉnh sửa mục tiêu hoạt động". Chọn tab "Xây dựng" và chọn cấu hình "Gỡ lỗi" trong hộp thả xuống ở phía trên bên trái. Chọn "Hiển thị tất cả cài đặt" trong hộp thả xuống bên dưới và nhập "gỡ lỗi" vào thanh tìm kiếm ngay bên cạnh hai hộp thả xuống này.

Nên có cài đặt "Tạo biểu tượng gỡ lỗi", đảm bảo rằng hộp kiểm của nó được đặt. "Cấp độ các biểu tượng gỡ lỗi" phải được đặt thành "Tất cả các ký hiệu". Ngoài ra, "Định dạng thông tin gỡ lỗi" phải được đặt thành "DWARF với tệp dSYM".

Sau khi thay đổi cài đặt, hãy dọn dẹp dự án của bạn ("Xây dựng" -> "Làm sạch") và tạo lại.

Hy vọng điều đó sẽ hữu ích.

+0

vì vậy bạn có nghĩa là điều dSYM lùn là về gỡ lỗi? – jokoon

+5

[DWARF] (http://en.wikipedia.org/wiki/DWARF) là một định dạng tệp gỡ lỗi. Các thư mục/bó dSYM (debug symbols) là cách tổ chức/lưu trữ các tệp DWARF của Apple để có thể giữ các biểu tượng gỡ lỗi tách biệt với các tệp nhị phân (trái với việc nhúng các biểu tượng gỡ lỗi vào các tệp nhị phân). Việc tách cho phép bạn gửi ứng dụng của mình mà không cần biểu tượng gỡ lỗi, nhưng nếu bạn nhận được nhật ký sự cố hoặc cần gỡ lỗi ứng dụng, bạn vẫn có biểu tượng gỡ lỗi xung quanh. – DarkDust

+0

Định dạng thông tin gỡ lỗi trong Xcode cho dự án của tôi được đặt thành DWARF với dsym. Điều đó có nghĩa là tôi đang gửi biểu tượng gỡ lỗi cho khách hàng, những người có thể sử dụng nó để đảo ngược kỹ sư ứng dụng của tôi? –

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