2009-05-29 36 views
9

tôi có dự án XCode (dự án xcode chính của tôi có dự án thực thi). Nó có phụ thuộc vào một vài dự án khác (trong tab Project trong Detail View, có một vài dự án xcode khác mà nó phụ thuộc vào).Cách đặt điểm ngắt trong dự án xcode phụ thuộc

Câu hỏi của tôi là làm thế nào tôi có thể thiết lập điểm ngắt trong mã của dự án phụ thuộc?

Tôi cố gắng này, nhưng điều này không làm việc 1. mở dự án xcode chính của tôi 2. nhấp đúp chuột vào một trong những dự án xcode phụ thuộc 3. trong thư mục nguồn, tìm tập tin tôi muốn phá vỡ và thêm một breakpoint (bằng cách nhấp vào bên cạnh biên giới của trình soạn thảo, một 'dấu trang' màu xanh xuất hiện) 4. Quay lại 'Xây dựng và Đi', ứng dụng của tôi chạy nhưng nó không bao giờ bị phá vỡ tại điểm ngắt mà tôi đã đặt # 3.

Ai đó có thể giúp tôi không? Tôi đã dành nhiều ngày về điều này, tôi không thể hiểu được tại sao.

Cảm ơn bạn.

+0

Bạn đang làm đúng cách, miễn là dự án phụ thuộc được xây dựng và dự án chính liên kết đến sản phẩm xây dựng của nó. – cdespinosa

Trả lời

0

một vài điều ở đây ... (một số rõ ràng một số không)

1) chắc chắn rằng các dự án phụ thuộc được biên soạn với các biểu tượng debug (tôi giả sử nó một thư viện)

2) được chắc chắn rằng tệp thực thi hoạt động của bạn đang liên kết với phiên bản gỡ lỗi của thư viện phụ thuộc của bạn

3) đặt điểm ngắt trong dự án chính của bạn ngay trước khi gọi vào điểm nhập của thư viện, đặt bp trên điểm vào của lib ... (ngoài điểm ngắt thực sự bạn đang tìm kiếm để đánh ...)

Tôi đã nhận thấy rằng cách tốt nhất để gỡ lỗi thư viện là mở dự án lib và đặt tệp thi hành hoạt động thành dự án chính, sau đó chỉ cần nhấn "xây dựng và gỡ lỗi" trực tiếp từ dự án thư viện.

Tôi hy vọng điều này sẽ giúp, chúc may mắn và vui chơi!

0

Tôi đã gặp sự cố tương tự với Xcode. Giải pháp cho tôi là đảm bảo rằng cũng có một điểm dừng trong dự án chính bị tấn công (như Kent đề cập trong điểm thứ ba của ông). Tôi không hiểu tại sao điều này làm việc mặc dù.

Bạn cũng chỉ nên đặt điểm ngắt trong dự án khi bạn mở nó. Nếu không, chúng có thể bắt đầu hoạt động sai: vẫn dừng lưu lượng thực thi sau khi bạn đã tắt hoặc xóa chúng hoặc không hoạt động khi bạn cho rằng chúng được bật.

0

Đảm bảo bạn chọn 'Xây dựng và Gỡ lỗi' (đối với bướC# 4). 'Go' đôi khi có nghĩa là 'Chạy' (điểm ngắt) và đôi khi có nghĩa là 'Gỡ lỗi' (các điểm ngắt được bật).

Ngoài ra, hãy đảm bảo rằng bạn rời khỏi dự án phụ thuộc mở khi bạn gỡ lỗi dự án chính.

1

Tôi sẽ lặp lại Jon-Eric ở đây và cũng thêm rằng nếu bạn thường xuyên chạy dự án của mình bằng Cmd + Enter, bạn nên xem xét chuyển sang Cmd + Y để bật gdb mỗi lần.

1

Bất cứ khi nào tôi gặp sự cố khi thiết lập điểm ngắt bằng GUI Xcode, tôi đã quản lý để làm điều đó bằng dòng lệnh trình gỡ rối (có nghĩa là lời nhắc "lldb" trong cửa sổ đầu ra). Ví dụ: để đặt điểm ngắt trong tệp nguồn "khách hàng.m" tại dòng 42, gõ:

(lldb) b client.m:42 

Bên cạnh đó là một sửa chữa cho vấn đề này cụ thể, gỡ lỗi trên dòng lệnh cung cấp linh hoạt hơn rất nhiều và automatability hơn bất kỳ GUI có thể Một nơi tốt để bắt đầu sẽ là LLDB tutorial. (Tiết lộ đầy đủ: Tôi là một fan hâm mộ lâu năm của unix và gdb, do đó, có một số thiên vị ở đây)

Tất nhiên, như những người khác đã đề cập, đảm bảo rằng thư viện/dự án phụ thuộc được biên dịch với các biểu tượng gỡ lỗi. giúp đỡ, chúc may mắn

15

1) Thêm điểm ngắt trong dự án của bạn

2) Đi vào breakpoint xem trong xcode (trên bên trái bên cạnh hoa tiêu dự án) Biểu tượng của cái nhìn giống như một biểu tượng breakpoint

3) Nhấp chuột phải vào breakpoint được yêu cầu và chọn "Move to" -> "User"

Nếu điểm ngắt nằm trong dự án "Người dùng" thì tất cả các dự án đều có thể truy cập.

+0

Rất hữu ích cảm ơn. Nhưng tôi tự hỏi: điểm ngắt nằm trong phần 'Không gian làm việc'. Tất cả dự án trong không gian làm việc có thể truy cập được không? Thực tế là: Nó không phải là, nhưng tôi tự hỏi tại sao? – Guian

0

Ngoài phản hồi kent về các biểu tượng gỡ lỗi, hãy kiểm tra giá trị COPY_PHASE_STRIP trong cài đặt bản dựng của dự án chính và đảm bảo nó được đặt thành NO khi gỡ lỗi.

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