17
Các công cụ thường dùng trong xcode Vũ Đình Thủy

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

Embed Size (px)

Citation preview

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

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

trong xcodeVũ Đình Thủy

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

Mục lục

Flow Control

Breakpoint

Instruments

Crash log

More

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

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.

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

Breakpoint

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

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.

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

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

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

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ớ

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

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

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

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

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

Instrument - Use case: Strong reference cycle

#Persistent: Số object đang có trong bộ nhớ.

#Transient: Số object đã được giải phóng.

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

Instrument - Use case: Strong reference cycle

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

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.

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

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.

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

Crash log - example

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

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

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

More - Assitant Editor

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

More - Color Blended Layers on Simulator