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


112

Tôi đã đặt các điểm ngắt nhưng Xcode dường như bỏ qua chúng.


2
Sản phẩmsạch giúp tôi
Alexander Bekert


Tôi đã phải khởi động lại toàn bộ máy tính của mình để chúng hoạt động trở lại và hiện tại chúng đang gặp rất nhiều lỗi. Tôi đang sử dụng xcode 10.2.1.
llamacorn

2
Xcode 11, Khởi động lại & Làm sạch Xcode không hoạt động, Khởi động lại máy Mac không hoạt động. Xóa ứng dụng trên thiết bị và tạo lại sẽ khắc phục sự cố này. Hy vọng điều này giúp đỡ một người nào đó
Randall Wang

Câu trả lời:


148

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

Tôi có hai điều nữa cần thêm.

(Đề xuất đầu tiên của tôi nghe có vẻ hiển nhiên, nhưng lần đầu tiên ai đó đề xuất nó với tôi, phản ứng của tôi diễn ra như sau: "thôi nào, làm ơn, bạn thực sự nghĩ rằng tôi sẽ không biết tốt hơn ...... ồ.")

  1. Đảm bảo rằng bạn không vô tình đặt "Cấu hình bản dựng đang hoạt động" thành "Bản 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 thuộc tính có tên "Tạo ký hiệu gỡ lỗi" (hoặc tương tự) và đảm bảo rằng thuộc tính này đã được KIỂM TRA (hay còn gọi là BẬT). Ngoài ra, bạn có thể thử tìm (cũng trong Target >> Get Info) một thuộc tính có tên "Định dạng thông tin gỡ lỗi" và đặt nó thành "Dwarf with dsym file."

Có một số thuộc tính khác trong Mục tiêu >> 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 những thứ đó (tôi cho rằng 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ư loại bỏ biểu tượng và đảm bảo rằng nó cũng 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.


8
Trên XCode 4.5.2 Tôi có vấn đề này và nó hóa ra là bởi vì tôi đã kích hoạt "tối ưu hóa liên kết thời gian", vì vậy đó là một điều để kiểm tra
taxilian

6
Để thay đổi cấu hình bản dựng, hãy chuyển đến Sản phẩm -> Lược đồ -> Chỉnh sửa sơ đồ, trong Chạy - Thông tin. Đối với tôi, điều hoạt động là kiểm tra "Debug Executable" trong menu đó.
Jeffrey Sun

2
Đánh cắp câu trả lời hàng đầu để thêm rằng cú pháp Bison dường như là một nguyên nhân (kỳ lạ) khác khiến các điểm ngắt không hoạt động (xem câu trả lời của tôi bên dưới). Hy vọng sẽ tiết kiệm được một chút thời gian cho người tiếp theo với vấn đề đó.
Dave

2
Cũng rất dễ dàng để vô tình bật tắt kích hoạt điểm ngắt với ⌘Y. Vì vậy, hãy coi chừng điều đó, các con.
dsgrnt

1
Tôi đã thử điểm số 1 và nó hiệu quả với tôi. Thực sự đã giúp tôi. Đã ủng hộ.
NSPratik

49

Trong Xcode 7, những gì hiệu quả với 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:

nhập mô tả hình ảnh ở đây


4
Đây chính xác là những gì đã xảy ra với tôi, hộp kiểm đã được bỏ chọn
anoop4real

Vấn đề tương tự đối với tôi. Không nên bật tùy chọn đó theo mặc định (XCode 8.3)? Chẳng phải chúng ta phải là tất cả các nhà phát triển, sẵn sàng gỡ lỗi sao?
dgmz

Làm việc cho tôi trong Xcode 9.3, nó sẽ là tuyệt vời nếu bạn cung cấp hình ảnh khác cho tùy chọn 1.
Kazi Abdullah Al Mamun

24

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


7
Rất tiếc, không có tùy chọn "gỡ lỗi" nào trong Xcode 6 và "lười biếng" không xuất hiện trong tài liệu. Thở dài.
Oscar

1
ổn, bây giờ tôi không thể tìm thấy 'Load Symbols lười biếng' trong XCode 6
RNA

14

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à loại bỏ và gỡ lỗi cờ tạo thông tin, tôi đã làm như sau:

  1. thoát khỏi Xcode
  2. mở 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ứ ngoại trừ tệp .pbxproj (Tôi đã có Frank.mode1v3 và Frank.pbxuser)

Bạn có thể hoàn thành tác vụ tương tự trong công cụ tìm 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 ngắt vẫn hoạt động!


2
Điều này hoạt động, nhưng nó xóa tất cả các tùy chọn của bạn ... Điều này nên được thực hiện khi không có gì khác hoạt động.
Rémi Doolaeghe

đã làm việc cho tôi, cảm ơn. Tôi tự hỏi tại sao Xcode lại hút nhiều như vậy. Xcode là phần mềm tồi tệ nhất mà Apple từng viết.
Duck

Chà, 5 tuổi rồi. Thật khó tin là nó vẫn hoạt động, và đó vẫn là một vấn đề!
Frank Szczerba,

Không làm việc cho tôi. Tôi đang chạy Xcode 6.01. Bây giờ khi tôi xây dựng, tôi nhận được nhiều lỗi tệp bị thiếu. Tôi đang hoàn nguyên mã của mình để giải quyết.
Native_Mobile_Arch_Dev

Chỉ phải khởi động lại Xcode, trường hợp của tôi là do lập phiên bản git, khi giới hạn dữ liệu trạng thái giao diện người dùng xcode.
Juan Boero

13

Đối với Xcode 4.x: Goto Product> Debug Workflow và bỏ chọn "Show Disassembly When Debugging".

Đối với Xcode 5.x Goto Debug> Debug Workflow và bỏ chọn "Show Disassembly When Debugging".


11

Lý do khác

Đặt DeploymentPostprocessingthành KHÔNG trong BuildSettings - chi tiết tại đây

Nói ngắn gọn -

Việc kích hoạt cài đặt này cho biết rằng mã nhị phân sẽ bị 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. [DEPLOYMENT_POSTPROCESSING]

nhập mô tả hình ảnh ở đây


Sau khi cập nhật lên XCode 7, cài đặt này bằng cách nào đó YESchỉ có trong các subprojectđiểm ngắt của tôi và sau đó không hoạt động subprojects. Và sau khi đặt thành NO, nó thật hoàn hảo!
Maheswaran Ravisankar 17/02/16

Điều này chỉ hiệu quả với tôi sau khi làm sạch dự án để việc xây dựng lại toàn bộ sẽ diễn ra.
Ran

8

Xem bài đăng này: Các điểm ngắt không hoạt động trong Xcode? . Bạn có thể đẩy "Run" thay vì "Debug" 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 ngắt hoạt động!


Trong Xcode 6.4, bây giờ chỉ có nút Chạy và việc nó có chạy cấu hình gỡ lỗi hay không phụ thuộc vào cài đặt lược đồ hiện được chọn.
user2067021

6

Một trong những giải pháp khả thi cho điều này có thể là .... đi tới Sản phẩm> Lược đồ> Chỉnh sửa lược đồ> .. Trong Chạy> thông tin> Kiểm tra thực thi "Gỡ lỗi thực thi".


Cái này có tác dụng với tôi sau khi đập đầu được 2 ngày.
Dileep Perla

rất vui vì nó đã giúp.
Soropromo

5

Điều này đã khiến tôi gặp phải Xcode 9 trong nửa ngày khó chịu. Nó kết thúc là một cài đặt gỡ lỗi đơn giản.

Đi tới Gỡ lỗi> Quy trình làm việc gỡ lỗi và đảm bảo rằng 'Luôn hiển thị tháo gỡ' đã được tắt. Đơn giản như vậy. :(


Điều này thực sự hiệu quả với tôi, cảm ơn
Md.Harish-Uz-Jaman Mridha Raju

5

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

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


5

Những gì đã giải quyết nó trong trường hợp của tôi khá đơn giản, trong Thư mục Xcode - Sản phẩm - Bản dựng sạch, tiếp theo là Sản phẩm - Chạy (không phải nút Phát Xcode).

(Đã gặp sự cố trên Xcode 11 -beta 4 sau khi chuyển sang thử nghiệm đơn vị bằng cách nhấn và giữ nút phát Xcode)


4

Đến trang này với cùng một vấn đề (mã C trong Xcode 6 không dừng lại ở các điểm ngắt) và không có giải pháp nào ở trên hoạt động (dự án thực tế đã ra khỏi hộp, cài đặ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ải quyết vấn đề, cuối cùng tôi đã tìm ra thủ phạm (đối với mã của tôi):

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

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


4

Đối với Xcode 4:

go Product -> Debug ->  Activate Breakpoints

Cảm ơn! điều này đã giúp. Tôi đã định đăng bài này cho chính mình, có vẻ như tôi đã đẩy ⌘Y bằng cách nào đó do nhầm lẫn.
Ovi

2

Tôi gặp rất nhiều vấn đề với các điểm ngắt 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). Tôi thấy rằng đôi khi các điểm ngắt không hoạt động trừ khi có ít nhất một điểm ngắt được đặt trong dự án bắt đầu (tức là điểm chứa điểm nhập cho mã của tôi). Nếu các điểm ngắt 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 của điểm ngắt một cách chính xác nếu bạn hành động trên điểm ngắt khi bạn đang ở trong dự án có chứa dòng nguồn mà điểm ngắt trên.

Nếu tôi thử xóa hoặc vô hiệu hóa các điểm ngắt thông qua một dự án khác, hành động này đô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 bị phá vỡ trên các điểm ngắt bị vô hiệu hóa hoặc trên một điểm ngắt (hiện đang ẩn) mà tôi đã xóa trước đó.


2

Tôi đã có các điểm ngắt 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 để chúng hoạt động trở lại.


2

Tôi nghĩ rằng vấn đề có thể là sự không tương thích giữa các phiên bản thiết bị và Xcode. Tôi gặp sự cố này khi cố gắng gỡ lỗi trên iPhone 4S chạy iOS 5.0.1 của mình. Tôi vẫn đang sử dụng Xcode 3.2.5. Tôi nhận được các ký hiệu từ điện thoại bằng cách chọn "sử dụng thiết bị này để phát triển" trong cửa sổ Trình tổ chức. Tuy nhiên, điện thoại này từ chối ngắt điểm. 3GS cũ của tôi sẽ điểm ngắt, cùng một dự án Xcode, cùng một cài đặt ... chỉ khác thiết bị và nó đang chạy iOS 4.0. Tôi đoán đây là lỗi Xcode trong 3.2.5, vì tôi có các ký hiệu. Sau khi đã 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 cao bằng hệ thống cần gỡ lỗi. Có lẽ đó là điều hiển nhiên - bất cứ ai 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

Xóa thư mục Xây dựng của tôi đã giải quyết được vấn đề cho tôi.


2

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

nhập mô tả hình ảnh ở đây


1

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

Tôi đã tìm thấy vấn đề. Bằng cách nào đó, " Hiển thị Disassembly 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 vô hiệu hóa 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 Disassemblykhi gỡ lỗi.


1

Bạn có thể Kích hoạt / Vô hiệu hóa các Điểm ngắt trong menu thả xuống nhập mô tả hình ảnh ở đây


1

Nếu vẫn thất bại, thay vì ngắt, 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, hãy đặt i bằng 0 theo cách thủ công, sau đó nhấn vào nút tiếp tục.


1

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

  • Đi tới View-> Navigators-> Show Debug Navigators
  • Nhấp chuột phải vào thư mục gốc của dự án -> Di chuyển điểm ngắt (Nếu được chọn tùy chọn Người dùng)
  • (Tôi cũng đã chọn các điểm ngắt chia sẻ tùy chọn , mặc dù tôi không chắc điều đó có cần thiết hay không).

Sau khi thực hiện thay đổi đó, tôi đặt các tùy chọn Di chuyển điểm ngắt trở lại dự án và bỏ chọn tùy chọn Chia sẻ điểm ngắt 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 sẽ lấy lại các điểm dừng của tôi.


1

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


@IshantMrinal Tại sao điều này không liên quan? Người dùng đã cung cấp một câu trả lời phù hợp với kịch bản của anh ta.
Noel Widmer

0

Khi đặt điểm ngắt, hãy 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 ngắt (ghi nhật ký và tiếp tục, tạm dừng thực thi, v.v.)

Đồng thời đảm bảo rằng "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

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


0

Một điều khác cần kiểm tra là nếu bạn có tệp plist "Quyền lợi" cho chế độ gỡ lỗi của mình (có thể do bạn đang thực hiện công việc với Chuỗi khóa), hãy đảm bảo tệp plist đó có hàng "get-task-allow" = YES. Nếu không có nó, gỡ lỗi và ghi nhật ký sẽ bị hỏng.


0

Dường như có 3 trạng thái cho các điểm ngắt 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 lam đậm được bật, màu xám bị tắt và đôi khi tôi thấy màu xanh lam nhạt khiến tôi phải nhấp lại vào điểm ngắt để chuyển nó sang màu xanh lam đậm.

Ngoài điều này, hã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 + quay lại hoặc tùy chọn Bắt đầu (gỡ lỗi) từ menu chạy.


0

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


0

Đây là một điểm khó hiểu mà tôi đã gặp phải: nếu bạn đang làm việc trên một thư viện được chia sẻ (hoặc một plugin), các điểm ngắt 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 gõ bàn phím của mình một cách bực bội và giết chết quá trình gỡ lỗi. Đừng làm vậy! Các biểu tượng sẽ không được tải cho đến khi ứng dụng tải thư viện, lúc này các điểm ngắt sẽ trở nên hợp lệ. Tôi đã gặp sự cố này với một plugin trình duyệt ... 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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.