SlideShare a Scribd company logo
Các công cụ thường dùng
trong xcode
Vũ Đình Thủy
Mục lục
Flow Control
Breakpoint
Instruments
Crash log
More
Flow Control
Các nút theo thứ tự từ trái qua phải là: continue, step over, step in, step out.
● Continue: cho phép chương trình tiếp tục thực hiện binh thường hoặc sẽ dừng khi gặp
một breakpoint khác.
● Step over: Thự hiện dòng code tiếp theo breakpoint, nếu như đặt breakpoint tại một
dòng gọi hàm thì nó sẽ không nhảy vào hàm đó mà sẽ thực hiện lời gọi hàm đó và
nhảy xuống dòng tiếp.
● Step in: Khi breakpoint đặt tại một dòng gọi hàm và ta muốn nhảy vào trong hàm đó để
debug thì dùng nut step in.
● Step out: Khi dùng step in và đang ở trong một hàm thì nếu muốn nhảy ra khỏi hàm đó
và trở về đoạn gọi hàm thì dùng step out.
Breakpoint
Breakpoint
● Condition: Điều kiện để breakpoint được thự hiện.
● Ignore: Breakpoint sẽ chỉ được thự hiện khi điểm
breakpoint đã được gọi n lần.
● Action: thêm các action khi một breakpoint được thự
hiện
● Automatically continue after evaluation actions: Khi
breakpoint được thự hiện nó sẽ không dừng chương
trình mà để chương trình tiếp tục thực hiện.
Symbolic Breakpoint
Sẽ dừng tại bất cứ điểm nào gọi hàm (isEven)
Dùng khi muốn biết một hàm được gọi ở những đâu
Instruments
Giới thiệu về công cụ tìm leak memory
Hai loại leak
1. True memory leaks: Khi một object không được tham chiếu nhưng vẫn nằm
trong bộ nhớ. Thường xảy ra khi bị retain cycle hay strong reference cycle.
2. Unbounded memory growth: Khi bộ nhớ được allocate liên tục và không
được reuse dẫn tới tràn bộ nhớ
Instruments
Dùng công cụ Allocations khi tạo profile.
• Tại tab Display Setting, có nút tên Mark Generation.
• Khi ấn nút đó trên track memory sẽ xuất hiện một cờ
màu đỏ.
• Tại mỗi điểm là một snapshot về trạng thái allocation
chênh lệch so với điểm trước đó.
• Làm đi làm lại nhiều lần để xác định được nguyên nhân
gây leak
Instrument - Use case: Strong reference cycle
• Tìm kiếm từ màn hình ViewController.
• Sau đó chọn một trong các kết quả sẽ sang màn hình SearchResultsCollectionView.
• Khi back lại từ màn hình SearchResultsCollectionView sẽ bị leak.
ViewController SearchResultsCollectionView
Instrument - Use case: Strong reference cycle
#Persistent: Số object đang có trong bộ nhớ.
#Transient: Số object đã được giải phóng.
Instrument - Use case: Strong reference cycle
Crash log
Lấy bằng xcode để crash log chuyển sang dạng symbolication.
Để xcode có thể symbolicate thì trên máy phải có .dSYM và file binary của ban
build mà sinh ra crash log.
Crash log - Exception types
Exception types/codes Names Descriptions
EXC_BAD_ACCESS
SIGSEGV
SIGBUS
Bad Memory Access Khi truy cập vào object đã bị release
EXC_CRASH
SIGABRT
Abnormal Exit Thường xảy ra khi gọi một hàm từ một object nhưng hàm đó chưa
được implement.
0x8badf00d Ate bad food Khi app mất quá nhiều thời gian để chạy, terminate hoặc respond
lại một sự kiện của hệ thống và sẽ bị watchdog của iOS tắt.
0xdead10cc Dead lock App bị tắt do giữ resource quá lâu khi chạy dưới background
0xdeadfa11 Dead fall App bị force-quit bởi người dùng. Khi app bị treo và người dùng ấn
giữ nút nguồn đến khi hiện “slide to power off” và lại ấn giữ nút
home để tắt app.
Crash log - example
More - Câu lệnh trong console
po - In ra màn hình thông tin của object. VD: po self.view
bt - In ra backtrace
More - Assitant Editor
More - Color Blended Layers on Simulator

More Related Content

PPT
5. broadcast receiver
PDF
Virus conkhi facebook
DOC
Core java 5
 
PPTX
Sql injection
DOC
Core java 6
 
PDF
Apresentação sobre gerenciamento
PPTX
Design pattern iOS
PPTX
[Seminar] Hướng dẫn viết test case
5. broadcast receiver
Virus conkhi facebook
Core java 5
 
Sql injection
Core java 6
 
Apresentação sobre gerenciamento
Design pattern iOS
[Seminar] Hướng dẫn viết test case

Similar to Các công cụ thường dùng trong xcode (20)

DOCX
Kỹ năng debug c#
PPTX
Quản lý bộ nhớ trong khi phát triển ứng dụng Apple iOS
PPTX
Apple iOS Memory Management - Vietnamese version
PPTX
IOS OverView
PPTX
Vietnam mobile day 2012 i os memory management - techmaster
PPTX
Mobiledaymemorymanagement 120519033851-phpapp02
PPTX
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
PPTX
Clean code
PPT
Buffer overflow(bao cao)
PPTX
Clean code
PDF
5 implementation
PDF
PPT
Basic Garbage Collection Techniques [ Vi]
PPT
chuong 5
DOC
Vb6 16 (10)
PPTX
Iphone programming
PPTX
SYMPER - USER STORY, USE CASE, REQUIREMENT.pptx
PPTX
Umodel 2009
PDF
se02b_specification khao sat xac dinh yeu cau .pdf
PDF
Kỹ năng debug c#
Quản lý bộ nhớ trong khi phát triển ứng dụng Apple iOS
Apple iOS Memory Management - Vietnamese version
IOS OverView
Vietnam mobile day 2012 i os memory management - techmaster
Mobiledaymemorymanagement 120519033851-phpapp02
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
Clean code
Buffer overflow(bao cao)
Clean code
5 implementation
Basic Garbage Collection Techniques [ Vi]
chuong 5
Vb6 16 (10)
Iphone programming
SYMPER - USER STORY, USE CASE, REQUIREMENT.pptx
Umodel 2009
se02b_specification khao sat xac dinh yeu cau .pdf
Ad

Recently uploaded (20)

DOC
TẦM QUAN TRỌNG CỦA VIỆC TUÂN THỦ CÁC QUY TẮC AN TOÀN GIAO THÔNG ĐƯỜNG BỘ
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PPTX
Chương 2 - Mô hình thực thể kết hợp.pptx
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PDF
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
DOCX
Set menu 3 món rất hay và hiện đại dành cho người
PPTX
1 CHƯƠNG MÔT- KHÁI LUẬN VỀ TRIẾT HỌC (1) [Read-Only].pptx
PPTX
Phân bố Nhị Thức Chuyên Đề Toán Lớp 12 Chân trời sáng tạo Tập 2
PPTX
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
PPTX
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
PPTX
Bài 6 Du an bua an ket noi yeu thuong.pptx
DOCX
Bài tập trăc nghiệm vận tốc. tốc độ trong chuyển động thẳng
PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
DOCX
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
PPT
Bài giảng Power Point 2003, hướng dẫn học tập
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PDF
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
PDF
Vision - Language - Model-- - Ebook.pdf
PDF
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
TẦM QUAN TRỌNG CỦA VIỆC TUÂN THỦ CÁC QUY TẮC AN TOÀN GIAO THÔNG ĐƯỜNG BỘ
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
Chương 2 - Mô hình thực thể kết hợp.pptx
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
Set menu 3 món rất hay và hiện đại dành cho người
1 CHƯƠNG MÔT- KHÁI LUẬN VỀ TRIẾT HỌC (1) [Read-Only].pptx
Phân bố Nhị Thức Chuyên Đề Toán Lớp 12 Chân trời sáng tạo Tập 2
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
Bài 9.4 TUYẾN SINH DỤC NAM VÀ NU CẤU TẠO VÀ CHỨC NĂNG
Bài 6 Du an bua an ket noi yeu thuong.pptx
Bài tập trăc nghiệm vận tốc. tốc độ trong chuyển động thẳng
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
Bài giảng Power Point 2003, hướng dẫn học tập
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
Vision - Language - Model-- - Ebook.pdf
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
Ad

Các công cụ thường dùng trong xcode

  • 1. Các công cụ thường dùng trong xcode Vũ Đình Thủy
  • 3. Flow Control Các nút theo thứ tự từ trái qua phải là: continue, step over, step in, step out. ● Continue: cho phép chương trình tiếp tục thực hiện binh thường hoặc sẽ dừng khi gặp một breakpoint khác. ● Step over: Thự hiện dòng code tiếp theo breakpoint, nếu như đặt breakpoint tại một dòng gọi hàm thì nó sẽ không nhảy vào hàm đó mà sẽ thực hiện lời gọi hàm đó và nhảy xuống dòng tiếp. ● Step in: Khi breakpoint đặt tại một dòng gọi hàm và ta muốn nhảy vào trong hàm đó để debug thì dùng nut step in. ● Step out: Khi dùng step in và đang ở trong một hàm thì nếu muốn nhảy ra khỏi hàm đó và trở về đoạn gọi hàm thì dùng step out.
  • 5. Breakpoint ● Condition: Điều kiện để breakpoint được thự hiện. ● Ignore: Breakpoint sẽ chỉ được thự hiện khi điểm breakpoint đã được gọi n lần. ● Action: thêm các action khi một breakpoint được thự hiện ● Automatically continue after evaluation actions: Khi breakpoint được thự hiện nó sẽ không dừng chương trình mà để chương trình tiếp tục thực hiện.
  • 6. Symbolic Breakpoint Sẽ dừng tại bất cứ điểm nào gọi hàm (isEven) Dùng khi muốn biết một hàm được gọi ở những đâu
  • 7. Instruments Giới thiệu về công cụ tìm leak memory Hai loại leak 1. True memory leaks: Khi một object không được tham chiếu nhưng vẫn nằm trong bộ nhớ. Thường xảy ra khi bị retain cycle hay strong reference cycle. 2. Unbounded memory growth: Khi bộ nhớ được allocate liên tục và không được reuse dẫn tới tràn bộ nhớ
  • 8. Instruments Dùng công cụ Allocations khi tạo profile. • Tại tab Display Setting, có nút tên Mark Generation. • Khi ấn nút đó trên track memory sẽ xuất hiện một cờ màu đỏ. • Tại mỗi điểm là một snapshot về trạng thái allocation chênh lệch so với điểm trước đó. • Làm đi làm lại nhiều lần để xác định được nguyên nhân gây leak
  • 9. Instrument - Use case: Strong reference cycle • Tìm kiếm từ màn hình ViewController. • Sau đó chọn một trong các kết quả sẽ sang màn hình SearchResultsCollectionView. • Khi back lại từ màn hình SearchResultsCollectionView sẽ bị leak. ViewController SearchResultsCollectionView
  • 10. Instrument - Use case: Strong reference cycle #Persistent: Số object đang có trong bộ nhớ. #Transient: Số object đã được giải phóng.
  • 11. Instrument - Use case: Strong reference cycle
  • 12. Crash log Lấy bằng xcode để crash log chuyển sang dạng symbolication. Để xcode có thể symbolicate thì trên máy phải có .dSYM và file binary của ban build mà sinh ra crash log.
  • 13. Crash log - Exception types Exception types/codes Names Descriptions EXC_BAD_ACCESS SIGSEGV SIGBUS Bad Memory Access Khi truy cập vào object đã bị release EXC_CRASH SIGABRT Abnormal Exit Thường xảy ra khi gọi một hàm từ một object nhưng hàm đó chưa được implement. 0x8badf00d Ate bad food Khi app mất quá nhiều thời gian để chạy, terminate hoặc respond lại một sự kiện của hệ thống và sẽ bị watchdog của iOS tắt. 0xdead10cc Dead lock App bị tắt do giữ resource quá lâu khi chạy dưới background 0xdeadfa11 Dead fall App bị force-quit bởi người dùng. Khi app bị treo và người dùng ấn giữ nút nguồn đến khi hiện “slide to power off” và lại ấn giữ nút home để tắt app.
  • 14. Crash log - example
  • 15. More - Câu lệnh trong console po - In ra màn hình thông tin của object. VD: po self.view bt - In ra backtrace
  • 16. More - Assitant Editor
  • 17. More - Color Blended Layers on Simulator