Làm cách nào để bật NSZombie trong Xcode?


302

Tôi có một ứng dụng bị lỗi không có dấu vết lỗi. Tôi có thể thấy một phần của những gì đang xảy ra nếu tôi gỡ lỗi, nhưng không thể tìm ra đối tượng nào là "zombie-ing".

Có ai biết cách kích hoạt NSZombie trong Xcode 4 không?

Câu trả lời:


440

Các biến môi trường hiện là một phần của "sơ đồ".

Để chỉnh sửa sơ đồ và bật zombie:

  • Trong menu "Sản phẩm", chọn "Chỉnh sửa lược đồ".

  • Chuyển đến giai đoạn "Chạy Foo.app" trong bảng điều khiển bên trái và tab "Đối số" ở bên phải.

  • Thêm NSZombieEnabledvào phần "Biến môi trường" và đặt giá trị thành YES, như bạn có thể trong Xcode 3.


Trong Xcode 4.1 trở lên , cũng có một hộp kiểm trên tab "Chẩn đoán" của giai đoạn "Chạy" để "Kích hoạt đối tượng Zombie".


Với Xcode 6.4:

Ảnh chụp màn hình


5
Không phá vỡ cuộc gọi đến đối tượng bị hủy trên thiết bị, có cách nào để thực hiện điều đó không?
jjxtra

95
Nó đã thay đổi một lần nữa trong 4.2, xem câu trả lời của tôi dưới đây. Chuyển đến Sản phẩm-> Chỉnh sửa sơ đồ-> Chẩn đoán
Moshe Kravchik

Trong Xcode, trong menu Trợ giúp ở trên cùng (cái cuối cùng bên phải) tìm kiếm "Chỉnh sửa lược đồ", nó sẽ chỉ cho bạn đi đúng hướng mỗi lần trong bất kỳ phiên bản nào.
unom

Nếu chúng tôi kích hoạt tính năng NSZombieEnables này cho ứng dụng của mình, chúng tôi sẽ phát hành ứng dụng này để lưu trữ ..? Bởi vì tôi đã thấy một bài đăng nói rằng việc phát hành để lưu trữ khi chúng tôi kích hoạt tính năng này là không tốt.
SOUNDH SANKE 24/2/2015

2
Đối với các tân binh sắp ra mắt, trong Xcode 6.1, bạn vào menu Sản phẩm> Lược đồ chỉnh sửa lược đồ> tab Chẩn đoán> Hộp kiểm Kích hoạt đối tượng Zombie
Joshua Dance

146

Tôi đã gặp vấn đề tương tự với việc khắc phục sự cố EXC_BAD_ACCESS và gặp khó khăn khi tìm cài đặt với Xcode 4.2 (phiên bản mới nhất đi kèm với iOS5 SDK). Apple tiếp tục di chuyển mọi thứ và các cài đặt không còn như trước đây.

May mắn thay, tôi đã tìm thấy nó và nó hoạt động cho thiết bị, không chỉ Trình mô phỏng. Bạn cần mở menu Sản phẩm trong Xcode, chọn Chỉnh sửa sơ đồ và sau đó chọn tab Chẩn đoán. Ở đó bạn có "Kích hoạt đối tượng Zombie". Sau khi được chọn và chạy trong trình gỡ lỗi sẽ đưa bạn đến đối tượng được phát hành kép! Thưởng thức!

Nói ngắn gọn

Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects

2
Trong Xcode, trong menu Trợ giúp ở trên cùng (cái cuối cùng bên phải) tìm kiếm "Chỉnh sửa lược đồ", nó sẽ chỉ cho bạn đi đúng hướng mỗi lần trong bất kỳ phiên bản nào.
unom

43

Sản phẩm> Hồ sơ sẽ khởi chạy Dụng cụ và sau đó bạn sẽ có "Bản mẫu dấu vết" có tên "Zombies". Tuy nhiên, mẫu theo dõi này chỉ khả dụng nếu đích xây dựng hiện tại là trình giả lập - nó sẽ không khả dụng nếu bạn đã đặt đích đến thiết bị iOS của mình.

Ngoài ra một điều khác cần lưu ý là không có nhạc cụ Zombie thực sự trong thư viện nhạc cụ. Mẫu theo dõi zombie thực sự bao gồm công cụ Allocations với bộ cấu hình khởi chạy "Bật phát hiện NSZombie".


13
"Tuy nhiên, mẫu theo dõi này chỉ khả dụng nếu đích xây dựng hiện tại là trình giả lập". Cảm ơn bạn!
ajh158

Cảm ơn, đó là những gì tôi đang tìm kiếm!
Cliff Ribaudo

Trong Xcode, trong menu Trợ giúp ở trên cùng (cái cuối cùng bên phải) tìm kiếm "Chỉnh sửa lược đồ", nó sẽ chỉ cho bạn đi đúng hướng mỗi lần trong bất kỳ phiên bản nào.
unom

25

Đó là một vấn đề đơn giản là đặt biến môi trường trên tệp thực thi của bạn (NSZombieEnabled = YES)và sau đó chạy / gỡ lỗi ứng dụng của bạn như bình thường. Nếu bạn nhắn tin cho zombie, ứng dụng của bạn sẽ gặp sự cố / phá vỡ trình gỡ lỗi và NSLogthông báo cho bạn.

Để biết thêm thông tin, hãy xem trang CacaoDev này: http://www.cocoadev.com/index.pl?NSZombieEnables

Ngoài ra, quá trình này sẽ trở nên dễ dàng hơn nhiều với việc phát hành 10.6 và các phiên bản tiếp theo của Xcode và Dụng cụ. Chỉ cần nói '. =)


Hoàn toàn đồng ý. Nhạc cụ Zombies mới rất hay.
Quinn Taylor

22

Sản phẩm> Hồ sơ sẽ bật lên Dụng cụ. Chọn zombie từ bảng điều khiển và đi hạt.


5
@jluebbert Tôi muốn nói hãy cố gắng hơn vì tôi chắc chắn thấy nó, chạy Xcode 4.02
Garageàtrois

16

Chuyển đến Sản phẩm - Lược đồ - chỉnh sửa lược đồ - Đối số - Biến môi trường được đặt NSZombieEnables = CÓ

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

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


12

Trong xcode 4.2

Goto, Sản phẩm -> chỉnh sửa sơ đồ -> bấm Chạy yourappname.app -> Diagonostics -> Bật đối tượng Zombie.



6

Kể từ Xcode 3.2.5 và Snow Leopard (Mac OS X 10.6), bạn có thể chạy mã của mình thông qua công cụ Zombies : Run > Run with Performance Tool > Zombies. Điều đó cho phép bạn nhìn thấy các đối tượng cụ thể và số lần giữ lại của chúng trên dòng thời gian.


1
Tôi có thể thấy tùy chọn zombie nhưng nó có màu xám. Bạn có biết làm thế nào nó được kích hoạt?
Rahul Vyas

@RahulVyas, tôi chưa bao giờ thấy điều đó trước đây, nhưng bạn có bật bộ sưu tập rác không? Tôi có thể thấy Zombie không có ý nghĩa trong bối cảnh đó
Dov

Tôi đã bật bộ sưu tập rác trong cài đặt mà nó hiển thị được hỗ trợ [-fobjc-gc] nhưng tùy chọn đó vẫn bị tắt. Chỉ thực hiện 5 tùy chọn cuối cùng được bật trong danh mục nhạc cụ. Còn ý tưởng nào khác không? Hay tôi đang làm gì đó sai?
Rahul Vyas

@RahulVyas: Xin lỗi, để được rõ ràng hơn, tôi nghĩ biến rác thải thu gom tắt có thể sẽ cho phép Zombies, vì tôi không nghĩ rằng nó có thể có một zombie với thu gom rác thải. Nếu điều đó không giải quyết được, tôi khuyên bạn nên đọc tài liệu về Dụng cụ (họ có cách viết tốt trên từng nhạc cụ) và nếu bạn vẫn chưa hiểu, hãy đăng câu hỏi tại đây để được chú ý rộng hơn (và cuối cùng là câu trả lời) .
Dov

4

Trong Xcode 4.5.2 goto Product -> Chỉnh sửa lược đồ -> và Trong tab Chẩn đoán, chọn hộp kiểm ở giữa Mục tiêu C và Bật Đối tượng Zombie và Nhấp vào OK


3

Để bật tính năng ghi nhật ký Zombie, nhấp đúp vào tệp thực thi trong nhóm thực thi của dự án Xcode của bạn. Tại thời điểm này, nhấp vào tab Đối số và trong Variables to be set in the environment:phần, tạo một biến được gọi NSZombieEnabledvà đặt giá trị của nó thành YES.


3

Trong XCode 4.0: Để phát hiện NSZombie trong Dụng cụ, hãy chọn Trình mô phỏng làm mục tiêu của bạn (không thể phát hiện NSZomboe trên thiết bị). Chạy dụng cụ (CMD + I) và chọn mẫu theo dõi "Zombies". Thưởng thức.


2

Trong các tùy chọn thực thi của bạn, thêm biến môi trường NSZombieEnabledvà đặt giá trị thành YES.


2

trong ur XCODE (4.3) bên cạnh nút phát :) (chạy)

chọn: chỉnh sửa sơ đồ

cửa sổ quản lý chương trình sẽ mở

nhấp vào tab Đối số

bạn sẽ thấy: 1- Các đối số được truyền khi khởi chạy 2- biến môi trường

bên trong vị trí (2- biến môi trường) Tên: NSZombieEnables
Giá trị: CÓ

Và nó đã hoàn thành ....


1

NSZombieEnables được sử dụng để gỡ lỗi BAD_ACCESS,

bật biến môi trường NSZombieEnables từ bảng lược đồ của Xcode.

Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box

này đoạn video sẽ giúp bạn để xem những gì tôi đang cố gắng để nói.


@kleopatra Cảm ơn đã cập nhật câu trả lời của tôi với cài đặt phù hợp
user2554822
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.