Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 ...
Breakpoint
Breakpoint
● Condition: Điều kiện để breakpoint được thự hiện.
● Ignore: Breakpoint sẽ chỉ được thự hiện khi điểm
breakpoi...
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...
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 ...
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...
Instrument - Use case: Strong reference cycle
#Persistent: Số object đang có trong bộ nhớ.
#Transient: Số object đã được g...
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ó .dS...
Crash log - Exception types
Exception types/codes Names Descriptions
EXC_BAD_ACCESS
SIGSEGV
SIGBUS
Bad Memory Access Khi t...
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
Upcoming SlideShare
Loading in …5
×

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

803 views

Published on

Rikkeisoft, iOS team seminar

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Các công cụ thường dùng trong xcode Vũ Đình Thủy
  2. 2. Mục lục Flow Control Breakpoint Instruments Crash log More
  3. 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.
  4. 4. Breakpoint
  5. 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. 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. 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. 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. 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. 10. Instrument - Use case: Strong reference cycle #Persistent: Số object đang có trong bộ nhớ. #Transient: Số object đã được giải phóng.
  11. 11. Instrument - Use case: Strong reference cycle
  12. 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. 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. 14. Crash log - example
  15. 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. 16. More - Assitant Editor
  17. 17. More - Color Blended Layers on Simulator

×