it-swarm-vi.tech

Tại sao điểm dừng của tôi không hoạt động?

Tôi đã thiết lập các điểm dừng nhưng Xcode dường như bỏ qua chúng.

95
AlanKley

Trước hết, tôi đồng ý 100% với những người trước đó đã nói bật TẮT Load Symbols Lazily.

Tôi có thêm hai điều để thêm.

(Gợi ý đầu tiên của tôi nghe có vẻ rõ ràng, nhưng lần đầu tiên ai đó gợi ý cho tôi, phản ứng của tôi đã đi theo những dòng này: "thôi nào, làm ơn, bạn thực sự nghĩ rằng tôi sẽ không biết rõ hơn ...... oh.")

  1. Đảm bảo bạn không vô tình đặt "Cấu hình xây dựng hoạt động" thành "Phát hành".

  2. Trong "Mục tiêu" trong màn hình cây đồ họa của dự án của bạn, nhấp chuột phải vào Mục tiêu của bạn và thực hiện "Nhận thông tin". Tìm kiếm một thuộc tính có tên "Tạo biểu tượng gỡ lỗi" (hoặc tương tự) và đảm bảo rằng đây là KIỂM TRA (còn gọi là BẬT). Ngoài ra, bạn có thể thử tìm (cũng trong Target >> Nhận thông tin) một thuộc tính có tên là "Định dạng thông tin gỡ lỗi" và đặt nó thành "Lùn với tệp dsym."

Có một số thuộc tính khác trong Target >> Nhận thông tin có thể ảnh hưởng đến bạn. Tìm kiếm những thứ như tối ưu hóa hoặc nén mã và tắt công cụ đó (Tôi giả sử bạn đang làm việc ở chế độ gỡ lỗi, vì vậy đây không phải là lời khuyên tồi). Ngoài ra, hãy tìm những thứ như tước biểu tượng và đảm bảo rằng đó cũng là TẮT. Ví dụ: "Sản phẩm được liên kết dải" phải được đặt thành "Không" cho mục tiêu Gỡ lỗi.

139
pestophagous

Trong Xcode 7, những gì làm việc cho tôi là:

1) Đảm bảo rằng mục tiêu -> lược đồ -> Chạy - ở chế độ Gỡ lỗi (đã được phát hành)

2) Đảm bảo kiểm tra tùy chọn "Gỡ lỗi thực thi" xem bên dưới:

enter image description here

32
Oded Regev

Chuyển đến tùy chọn Gỡ lỗi Xcode. Đảm bảo rằng "Tải biểu tượng một cách lười biếng" KHÔNG được chọn.

25
AlanKley

Tôi chỉ gặp vấn đề tương tự (một lần nữa). Sau khi kiểm tra ba lần "Tải biểu tượng một cách lười biếng" và tước và gỡ lỗi các cờ tạo thông tin, tôi đã làm như sau:

  1. thoát Xcode
  2. mở một cửa sổ đầu cuối và cd vào thư mục dự án
  3. cd vào thư mục .xcodeproj
  4. xóa mọi thứ trừ tệp .pbxproj (tôi đã có frank.mode1v3 và frank.pbxuser)

Bạn có thể hoàn thành nhiệm vụ tương tự trong Finder bằng cách nhấp chuột phải/tùy chọn vào gói .xcodeproj và chọn "Hiển thị nội dung gói".

Khi tôi khởi động lại Xcode, tất cả các cửa sổ của tôi đã được đặt lại về vị trí mặc định, v.v., nhưng các điểm dừng hoạt động!

14
Frank Szczerba

Đối với Xcode 4.x: Sản phẩm Goto> Quy trình gỡ lỗi và bỏ chọn "Hiển thị tháo gỡ khi gỡ lỗi".

Đối với Xcode 5.x Goto Debug> Debug Workflow và bỏ chọn "Hiển thị tháo gỡ khi gỡ lỗi".

12
bneupaane

Xem bài đăng này: Điểm dừng không hoạt động trong Xcode? . Bạn có thể đang đẩy "Chạy" thay vì "Gỡ lỗi" trong trường hợp chương trình của bạn không chạy với sự trợ giúp của gdb, trong trường hợp đó bạn không thể mong đợi các điểm dừng hoạt động!

8
Soong

Lý do khác

Đặt DeploymentPostprocessing thành NO trong BuildS Settings - chi tiết tại đây

Nói ngắn gọn -

Kích hoạt cài đặt này cho biết các tệp nhị phân phải được loại bỏ và chế độ tệp, chủ sở hữu và thông tin nhóm phải được đặt thành giá trị tiêu chuẩn. [TIỀN GỬI_POSTPROCESSING]

enter image description here

7
gbk

Đối với Xcode 4:

go Product -> Debug ->  Activate Breakpoints
4
evya

Đến trang này có cùng một vấn đề (mã C trong Xcode 6 không dừng ở các điểm dừng) và không có giải pháp nào ở trên hoạt động (dự án thực tế nằm ngoài hộp, rất khôn ngoan, vì vậy rất ít cơ hội cho bất kỳ cài đặt trình gỡ lỗi nào được đặt thành giá trị sai) ...

Sau khi lãng phí khá nhiều thời gian để giảm bớt vấn đề, cuối cùng tôi đã tìm ra thủ phạm (cho mã của tôi):

Xcode (/ LLVM) không thích kiểu Bison #line lệnh tiền xử lý.

Loại bỏ chúng đã khắc phục sự cố (trình gỡ lỗi dừng tại các điểm dừng của tôi).

4
Dave

Giải pháp cho tôi với XCode 9.4.1 (không dừng ở bất kỳ điểm dừng nào):

Trong mục tiêu xây dựng -> Cài đặt bản dựng -> Mức tối ưu hóa: Được chuyển từ "Tối ưu hóa tốc độ" -> "Không tối ưu hóa" (hiện tại nó chậm hơn nhưng hoạt động)

4
Strinder

Điều này đã cho tôi trong Xcode 9 trong nửa ngày bực bội. Nó đã kết thúc là một thiết lập gỡ lỗi đơn giản.

Đi gỡ lỗi> Quy trình gỡ lỗi và đảm bảo 'Luôn hiển thị tháo gỡ' được tắt. Đơn giản như thế. :

3
Gaz Long

Đây có thể là một trong những lý do có thể xảy ra .... đi đến Sản phẩm> Lược đồ> Chỉnh sửa lược đồ> .. Trong Chạy> thông tin> Kiểm tra thực thi "Thực thi gỡ lỗi".

2
Soropromo

Tôi nghĩ vấn đề có thể không tương thích giữa các phiên bản thiết bị và Xcode. Tôi gặp vấn đề này khi cố gắng gỡ lỗi trên iPhone 4S chạy iOS 5.0.1. Tôi vẫn đang sử dụng Xcode 3.2.5. Tôi đã nhận được các biểu tượng từ thiết bị cầm tay bằng cách chọn "sử dụng thiết bị này để phát triển" trong cửa sổ Sắp xếp. Điện thoại này từ chối điểm dừng tuy nhiên. 3GS cũ của tôi sẽ điểm dừng, cùng dự án Xcode, cùng cài đặt ... chỉ khác thiết bị và nó đang chạy iOS 4.0. Tôi đoán đây là một lỗi Xcode trong 3.2.5, vì tôi có các ký hiệu. Đã thử tất cả các giải pháp được đăng ở đây cho đến nay, tôi đã quyết định giải pháp cho vấn đề của mình là tiếp tục và nâng cấp lên XCode 4. Có lẽ bạn không thể gỡ lỗi hiệu quả trừ khi SDK cơ sở của bạn ít nhất là cao như hệ thống để gỡ lỗi. Có lẽ đó là điều hiển nhiên - bất cứ ai cũng có thể xác nhận?

Chỉnh sửa: Tôi sẽ cập nhật khi tôi có thể xác nhận điều này là đúng.

2
Gavin

Xóa thư mục Build của tôi đã giải quyết vấn đề cho tôi.

2
Jack Bellis

Tôi có rất nhiều vấn đề với các điểm dừng trong Xcode (2.4.1). Tôi sử dụng một dự án chỉ chứa các dự án khác (như Giải pháp trong Visual Studio). Đôi khi tôi thấy rằng các điểm dừng hoàn toàn không hoạt động trừ khi có ít nhất một điểm dừng được đặt trong dự án bắt đầu (nghĩa là điểm dừng chứa điểm nhập cảnh cho mã của tôi). Nếu các điểm dừng duy nhất nằm trong các dự án "cấp thấp hơn", chúng sẽ bị bỏ qua.

Có vẻ như Xcode chỉ xử lý các hoạt động điểm dừng một cách chính xác nếu bạn hành động trên điểm dừng khi bạn đang ở trong dự án chứa dòng nguồn của điểm dừng.

Nếu tôi cố xóa hoặc vô hiệu hóa các điểm dừng thông qua một dự án khác, hành động đôi khi không có hiệu lực, mặc dù trình gỡ lỗi chỉ ra rằng nó có. Vì vậy, tôi sẽ thấy mình phá vỡ các điểm dừng bị vô hiệu hóa, hoặc trên một điểm dừng (bây giờ vô hình) mà tôi đã xóa trước đó.

2
Charles Anderson

Tôi đã có các điểm dừng của mình không hoạt động và sau đó thực hiện Xây dựng/Làm sạch tất cả các mục tiêu để khiến chúng hoạt động trở lại.

2
snowytree

Đối với điều này, và đối với Xcode 6 trở lên, hãy đảm bảo rằng nút trạng thái điểm dừng được kích hoạt (nút giống như mũi tên màu xanh):

enter image description here

2
df611

Trong Xcode 4

- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug 
-      but I have other targets set to AdHoc which debug fine once Debugger is set
1
brian.clear

Tôi đã thử tất cả những điều trên nhưng đối với tôi chỉ tắt các điểm dừng gỡ lỗi một lần và sau đó kích hoạt chúng hoạt động.

1
user8032120

Bạn có thể Kích hoạt/Hủy kích hoạt Điểm dừng trong menu thả xuống enter image description here

1
Stan

Tôi tìm thấy vấn đề. Bằng cách nào đó, "Hiển thị tháo gỡ khi gỡ lỗi" đã được bật trong XCode của tôi, điều này tạo ra vấn đề đó. Khi tôi tắt nó, tất cả trình gỡ lỗi của tôi dừng lại trong mã nguồn của tôi.

Bạn có thể tìm thấy nó dưới: Product->Debug Workflow->Show Disassembly khi gỡ lỗi.

1
Perumal

Nếu vẫn thất bại, thay vì điểm dừng, bạn có thể gọi hàm sau:

void BreakPoint(void) {
    int i=1;
    #if !__OPTIMIZE__
    printf("Code is waiting; hit pause to see.\n");
    while(i);
    #endif
}

Để tiếp tục, tự đặt i về 0, sau đó nhấn nút tiếp tục.

1
William Jockusch

Nó đã xảy ra điều tương tự với tôi trong XCode 6.3.1. Tôi đã cố gắng sửa nó bằng cách:

  • Truy cập Xem-> Trình điều hướng-> Hiển thị Trình điều hướng gỡ lỗi
  • Nhấp chuột phải vào gốc dự án -> Di chuyển điểm dừng (Nếu được chọn tùy chọn Người dùng)
  • (Tôi cũng đã chọn tùy chọn chia sẻ điểm dừng, mặc dù tôi không chắc nếu điều đó cần thiết).

Sau khi thực hiện thay đổi đó, tôi đặt các tùy chọn Di chuyển điểm dừng trở lại dự án và bỏ chọn tùy chọn Chia sẻ điểm dừng và vẫn hoạt động.

Tôi không biết chính xác tại sao nhưng điều này lấy lại điểm dừng của tôi.

1
Osk

Trên Xcode 6.4, tôi cần khởi động lại máy Mac của mình.

(Đã thử bật/tắt điểm dừng, khởi động lại thiết bị iOS, khởi động lại Xcode, xóa các tệp điểm dừng khỏi gói không gian làm việc ...)

0
user2067021

Nếu bạn đang sử dụng Subversion, chỉ cần hoàn nguyên các tệp dự án của bạn (chỉ) đến lần cuối cùng bạn biết trình gỡ lỗi đang hoạt động.

0
stephen

Đây là một điều tối nghĩa mà tôi gặp phải: nếu bạn đang làm việc trên một thư viện dùng chung (hoặc một plugin), các điểm dừng của bạn sẽ chuyển sang màu vàng khi khởi động, điều này có thể khiến bạn đập bàn phím trong sự thất vọng và giết quá trình gỡ lỗi. Chà, đừng làm thế! Các biểu tượng sẽ không được tải cho đến khi ứng dụng tải thư viện, tại đó các điểm dừng sẽ trở nên hợp lệ. Tôi gặp phải vấn đề này với một plugin trình duyệt ... Các BP đã bị vô hiệu hóa cho đến khi tôi duyệt đến một trang khởi tạo plugin của mình.

0
Tim Keating

Điều này thỉnh thoảng xảy ra với một dự án iOS. Để khắc phục, tôi phải khởi động lại thiết bị iOS, thoát Xcode và xây dựng lại dự án.

0
kakyo

Đồng thời đảm bảo rằng bản phân phối ứng dụng AppStore không được cài đặt trên thiết bị.

0
dan

Nếu bạn đã thử tất cả các kiểm tra cơ bản, hãy kiểm tra Mức tối ưu hóa trong cài đặt dự án và mục tiêu dự án. đảm bảo bạn đã chọn Không có để gỡ lỗi.

enter image description here

0

Tôi đã gặp sự cố với Xcode khi mất điểm dừng khi sử dụng trình giả lập và có cài đặt Khởi chạy sơ đồ để "chờ thực thi". Thay đổi điều đó thành "khởi chạy tự động" và các điểm dừng hoạt động trở lại.

0
Richard

Một điều khác cần kiểm tra là nếu bạn có tệp plist "Entitlements" cho chế độ gỡ lỗi của mình (có thể vì bạn đang làm việc với Keychain), hãy đảm bảo rằng tệp plist có hàng "get-task-allow" = YES. Không có nó, gỡ lỗi và đăng nhập sẽ bị phá vỡ.

0
davidcann

Tôi tin rằng một dự án cũng có thể bị hỏng liên quan đến các điểm dừng. Tôi có một dự án, ví dụ, S NOT KHÔNG phá vỡ bất kỳ điểm dừng nào mà nó nhớ từ phiên trước đó. Lần đầu tiên tôi viết về điều này ở đây

0
AlanKley

Tôi đã gặp phải vấn đề tương tự khi tôi muốn gỡ lỗi một trình cắm web trong đó thực thi tùy chỉnh là Safari 5.1. Nó hoạt động tốt cho đến khi nâng cấp Safari của tôi lên 5.1 từ 4.0.5. Khi tôi cài đặt Safari 4.0.5 một lần nữa, tất cả các điểm dừng bắt đầu hoạt động mà không sửa đổi bất kỳ cài đặt Xcode nào.

0
user917691

Tôi có Xcode 3.2.3 SDK 4.1 Breakpoint sẽ thất bại một cách ngẫu nhiên. Tôi đã tìm thấy nếu bạn dọn sạch bản dựng và sử dụng lệnh cảm ứng trong bản dựng thì chúng hoạt động trở lại.

0
Damon McGIll

Một lý do khác khiến các điểm dừng có thể chuyển sang màu vàng là nếu nhị phân ứng dụng bạn đang sửa lỗi đã được sửa đổi kể từ lần chạy đầu tiên. Trong trường hợp của tôi, tôi đã thêm một thư mục vào thư mục Nội dung/Tài nguyên của ứng dụng sau khi đã gỡ lỗi chương trình một lần. Khi chạy gỡ lỗi sau khi thêm thư mục, các điểm dừng chuyển sang màu vàng và bị bỏ qua. Tôi đã sửa đổi quy trình của mình: Tôi đã dọn dẹp, xây dựng, thêm thư mục, sau đó chạy và tất cả đều ổn.

Có lẽ Xcode (hoặc OS X) tạo và ghi nhớ chữ ký số của ứng dụng (đó là không được ký điện tử) và sau đó, cảm thấy rằng ứng dụng đã được sửa đổi, từ chối thử đặt điểm dừng. Bằng cách tạo các mod của tôi trước khi chạy (gỡ lỗi) đầu tiên của ứng dụng, chữ ký số đã được tạo với mod của tôi.

Tất cả điều này trên OS X 10.6.8 bằng Xcode 3.2.2.

0
user532477

Chỉ cần giải quyết điều này trong XCode 4.2, không có gì ở trên giúp được. Vấn đề là (tôi không chắc điều gì đã thực sự xảy ra, nhưng, có lẽ điều này sẽ giúp được ai đó): đồng đội của tôi đã tạo cấu hình xây dựng mới và dự án cập nhật trong SVN. Tôi đã có cấu hình bản dựng cũ được thiết lập trong cài đặt Run Scheme, vì vậy các bước cho tôi là:

  1. Sản phẩm -> Chỉnh sửa lược đồ ...
  2. Chọn "Chạy% project_name.app%" (hoặc bất kỳ nguyên nhân nào gây ra sự cố)
  3. Trong kết hợp cấu hình bản dựng, chọn cấu hình bản dựng mới đó từ đồng đội của tôi

Và đó là tất cả, điểm dừng lại trở lại. Hi vọng điêu nay co ich.

0
MANIAK_dobrii

Tôi đã không thực hiện Xcode một chút, nhưng tôi khuyên bạn nên tắt "Zerolink" và "Tải biểu tượng một cách nhanh chóng"; Điều đó sẽ khắc phục hầu hết các vấn đề. Zerolink dù sao cũng là một kẻ gớm ghiếc.

0
duane

Dường như có 3 trạng thái cho các điểm dừng trong Xcode. Nếu bạn nhấp vào chúng, chúng sẽ chuyển qua các cài đặt khác nhau. Màu xanh đậm được bật, màu xám bị tắt và đôi khi tôi thấy màu xanh nhạt yêu cầu tôi phải nhấp vào điểm dừng một lần nữa để chuyển sang màu xanh đậm.

Khác với điều này đảm bảo rằng bạn đang khởi chạy nó bằng lệnh gỡ lỗi chứ không phải lệnh chạy. Bạn có thể làm điều đó bằng cách nhấn tùy chọn + lệnh + return hoặc tùy chọn Go (gỡ lỗi) từ menu chạy.

0
crackity_jones

Khi đặt điểm dừng của bạn, nhấp chuột phải và bạn sẽ nhận được một số tùy chọn về cách xử lý điểm dừng (ghi nhật ký và tiếp tục, tạm dừng thực hiện, v.v.)

Ngoài ra, hãy đảm bảo "Tải biểu tượng một cách lười biếng" không được chọn trong tùy chọn gỡ lỗi.

(Áp dụng cho Xcode 3.1, không chắc chắn về các phiên bản trong quá khứ/tương lai)

0
Scott Swezey

Có cả Xcode 5 và 6 GM khiến cho cái trước mất chức năng điểm dừng (betcode Xcode 6 đều ổn).

Tôi đã thử nhiều phương pháp được đề xuất nhưng cuối cùng đã từ bỏ và bây giờ tôi chỉ sử dụng Xcode 6.

0
Rivera

Điều đã giải quyết nó trong trường hợp của tôi khá đơn giản, trong Xcode - Product - Clean Build Directory theo sau là Product - Run (không phải nút Play Xcode).

(Đã xảy ra sự cố trên Xcode 11 -beta 4 sau khi chuyển sang kiểm tra đơn vị bằng cách nhấn nút Xcode lâu)

0
Lukas

Bạn có thể kiểm tra một cài đặt trong cài đặt đích Apple Trình biên dịch LLVM Phần tạo mã 4.1 Tạo biểu tượng gỡ lỗi = CÓ

0
Pushan

Trong trường hợp của tôi, tôi phát hiện ra rằng các điểm dừng đã vô tình bị vô hiệu hóa. Bạn có thể kích hoạt lại nó thông qua Gỡ lỗi-> Kích hoạt Điểm dừng [Cmd + Y]. Nếu bạn nhận thấy các điểm đánh dấu màu xám thay vì điểm đánh dấu màu xanh thông thường, đây có thể là trường hợp.

Khi nó bật ra, bạn luôn có thể chuyển đổi kích hoạt điểm dừng bằng các phím Cmd + Y, bạn có thể đã nhấn phím kết hợp này mà không nhận thấy nó. Báo cáo này dựa trên Xcode 7.2.

0
Benny Khoo

Trong trường hợp Xcode 4 trở lên * Tải biểu tượng một cách lười biếng * dường như là rớt . Vì vậy, tham khảo bài viết này bấm vào đây

Giải thích đơn giản và chi tiết làm việc cho tôi.

0
Ajit Satarkar