ฉันมีแอพที่หยุดทำงานโดยไม่มีข้อผิดพลาดในการติดตาม ฉันสามารถเห็นส่วนหนึ่งของสิ่งที่เกิดขึ้นถ้าฉัน debug แต่ไม่สามารถคิดออกได้ว่าวัตถุใดเป็น "zombie-ing"
ใครบ้างรู้วิธีเปิดใช้งาน NSZombie ใน Xcode 4
ฉันมีแอพที่หยุดทำงานโดยไม่มีข้อผิดพลาดในการติดตาม ฉันสามารถเห็นส่วนหนึ่งของสิ่งที่เกิดขึ้นถ้าฉัน debug แต่ไม่สามารถคิดออกได้ว่าวัตถุใดเป็น "zombie-ing"
ใครบ้างรู้วิธีเปิดใช้งาน NSZombie ใน Xcode 4
คำตอบ:
ตัวแปรสภาพแวดล้อมตอนนี้เป็นส่วนหนึ่งของ "โครงการ"
วิธีแก้ไขและเปิดซอมบี้:
ในเมนู "ผลิตภัณฑ์" เลือก "แก้ไขแบบแผน"
ไปที่ขั้นตอน "เรียกใช้ Foo.app" ในแผงด้านซ้ายและแท็บ "อาร์กิวเมนต์" ทางด้านขวา
เพิ่มNSZombieEnabled
ในส่วน "ตัวแปรสภาพแวดล้อม" และตั้งค่าYES
เป็นเช่นเดียวกับที่คุณทำใน Xcode 3
ใน Xcode 4.1 ขึ้นไปยังมีช่องทำเครื่องหมายบนแท็บ "การวินิจฉัย" ของสเตจ "เรียกใช้" เป็น "เปิดใช้งานออบเจ็กต์ซอมบี้"
ด้วย Xcode 6.4:
ฉันพบปัญหาเดียวกันกับการแก้ไขปัญหา EXC_BAD_ACCESS และมีเวลายากในการค้นหาการตั้งค่าด้วย Xcode 4.2 (ตัวล่าสุดที่มาพร้อมกับ iOS5 SDK) แอปเปิลยังคงเดินหน้าต่อไปและการตั้งค่าต่าง ๆ ไม่เคยเป็นมาก่อน
โชคดีที่ฉันเจอแล้วมันใช้งานได้กับอุปกรณ์ไม่ใช่แค่เครื่องมือจำลอง คุณต้องเปิดเมนูผลิตภัณฑ์ใน Xcode เลือกแก้ไขชุดรูปแบบจากนั้นเลือกแท็บการวินิจฉัย คุณมี "เปิดใช้งานวัตถุซอมบี้" เมื่อเลือกและรันในดีบักเกอร์จะนำคุณไปยังวัตถุที่ถูกปล่อยสองครั้ง! สนุก!
ในระยะสั้น
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
ผลิตภัณฑ์> โปรไฟล์จะเปิดใช้งานเครื่องมือจากนั้นคุณควรจะมี "เทมเพลตการติดตาม" ชื่อ "ซอมบี้" อย่างไรก็ตามเทมเพลตการติดตามนี้จะใช้ได้เฉพาะในกรณีที่ปลายทางการสร้างปัจจุบันเป็นเครื่องจำลอง - มันจะไม่สามารถใช้ได้หากคุณมีปลายทางที่ตั้งไว้ในอุปกรณ์ iOS ของคุณ
อีกสิ่งที่ควรทราบคือไม่มีเครื่องดนตรีซอมบี้จริงในคลังเครื่องมือ เทมเพลตการติดตามซอมบี้จริง ๆ แล้วประกอบด้วยเครื่องมือการจัดสรรด้วยชุดการเปิดใช้ "การเปิดใช้งานการตรวจจับ NSZombie"
มันเป็นเรื่องง่าย ๆ ในการตั้งค่าตัวแปรสภาพแวดล้อมในการปฏิบัติการของคุณ(NSZombieEnabled = YES)
จากนั้นเรียกใช้ / ดีบักแอปของคุณตามปกติหากคุณส่งข้อความถึงซอมบี้แอปของคุณจะหยุดทำงาน / พักเพื่อดีบักและNSLog
ข้อความสำหรับคุณ
สำหรับข้อมูลเพิ่มเติมดูที่หน้า CocoaDev นี้: http://www.cocoadev.com/index.pl?NSZombieEnabled
นอกจากนี้กระบวนการนี้จะกลายเป็นเรื่องง่ายขึ้นด้วยการเปิดตัว 10.6 และ Xcode and Instruments เวอร์ชั่นถัดไป แค่พูด'. =)
ผลิตภัณฑ์> โปรไฟล์จะแสดงเครื่องมือ เลือกซอมบี้จากพาเนลและไปบ้า
ไปที่ผลิตภัณฑ์ - รูปแบบ - แก้ไขรูปแบบ - อาร์กิวเมนต์ -ชุดตัวแปรสภาพแวดล้อมNSZombieEnabled = YES
ใน xcode 4.2
ไปที่ผลิตภัณฑ์ -> แก้ไขชุดรูปแบบ -> คลิกเรียกใช้ yourappname.app -> Diagonostics -> เปิดใช้งานวัตถุซอมบี้
นี่คือวิดีโอและคำอธิบายวิธีใช้เครื่องมือและ NSZombie เพื่อค้นหาและแก้ไขปัญหาหน่วยความจำล่มใน iOS: http://www.markj.net/iphone-memory-debug-nszombie/
ในฐานะของ Xcode 3.2.5 และเสือดาวหิมะ (Mac OS X 10.6) Run > Run with Performance Tool > Zombies
คุณสามารถเรียกใช้รหัสผ่านเครื่องมือซอมบี้: ที่ช่วยให้คุณเห็นวัตถุเฉพาะและการเก็บรักษาไว้ในเส้นเวลา
ใน Xcode 4.5.2 goto Product -> Edit Scheme -> และภายใต้แท็บ Diagnostics ทำเครื่องหมายในช่องระหว่าง Objective C และ Enable Zombie Objects แล้วคลิก OK
หากต้องการเปิดใช้งานการบันทึก Zombie ให้คลิกสองครั้งที่ไฟล์ปฏิบัติการในกลุ่มไฟล์ปฏิบัติการของโครงการ Xcode ของคุณ ณ จุดนี้ให้คลิกที่แท็บข้อโต้แย้งและในVariables to be set in the environment:
ส่วนให้ที่เรียกว่าตัวแปรและการตั้งค่าของNSZombieEnabled
YES
ใน XCode 4.0: ในการตรวจจับ NSZombie in Instruments ให้เลือก Simulator เป็นเป้าหมายของคุณ (ไม่สามารถตรวจจับ NSZomboe บนอุปกรณ์) เรียกใช้เครื่องมือ (CMD + I) และเลือกเทมเพลตการติดตาม "ซอมบี้" สนุก.
ในการตั้งค่าของปฏิบัติการของคุณเพิ่มตัวแปรสภาพแวดล้อมและการตั้งค่าไปNSZombieEnabled
YES
ใน ur XCODE (4.3) ถัดจากปุ่มเล่น :) (รัน)
เลือก: แก้ไขชุดรูปแบบ
หน้าต่างการจัดการโครงการจะเปิดขึ้น
คลิกที่แท็บอาร์กิวเมนต์
คุณควรเห็น: 1- ข้อโต้แย้งที่ส่งผ่านไปยังตัวแปรสภาวะแวดล้อมการเรียกทำงาน 2-
ภายในชื่อสถานที่ (2- ตัวแปรสภาพแวดล้อม): NSZombieEnabled
ค่า: ใช่
และมันเสร็จแล้ว ....
NSZombieEnabled ใช้สำหรับการดีบัก BAD_ACCESS
เปิดใช้งานตัวแปรสภาพแวดล้อม NSZombiesEnabled จากแผ่นร่างของ Xcode
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
วิดีโอนี้จะช่วยให้คุณเห็นสิ่งที่ฉันพยายามจะพูด