Là một lập trình viên iOS đang tập toẹ vào nghề có lẽ bạn không khỏi ngỡ ngàng và tốn nhiều thời gian vào việc tìm hiểu tại sao ứng dụng của mình chạy lên bị crash ngay lập tức.
- Lỗi gặp kiểu như “Thread 1: signal SIGABRT”
- Bạn không biết chuyện gì xảy ra, không biết lỗi xảy ra từ đâu và có thể mất nhiều thời gian để chạy đi chạy lại ứng dụng để đoán lỗi và khoanh vùng lỗi.
Đây có lẽ là điều các newbie iOS developer chằng thích chút nào. Làm sao để biết được lỗi exception ở đoạn code nào trong ứng dụng của ta đây.
Các bạn hãy làm theo 3 bước hướng dẫn dưới đây để xác định vùng gây ra lỗi để xử lý nhé!
- Bước 1: dừng chạy ứng dụng, từ menu Debug xổ ra truy cập vào sub-menu Breakpoint và chọn Create Exception Breakpoint…
- Khi đó trong vùng Breakpoint sẽ xuất hiện thêm thông tin All Exceptions với ý nghĩa sẽ dừng tại dòng code mà ném ra ngoại lệ.
- Bước 2: chạy lại ứng dụng và tái lặp theo tình huống đã gây ra lỗi trước đó, bạn sẽ thấy trên XCode sẽ dừng ở dòng code sẽ gây ra ngoại lệ kèm theo callstack, giá trị các biến tại thời điểm đó.
- Bước 3: từ thông tin được cung cấp bạn dễ dàng tìm ra nguyên nhân gây ra lỗi exception. Các lỗi exception có thể: Null Pointer Exception, Index Out Of Bound, File Not Found Exception…
Ngoài ra, trong bài này mình cũng hướng dẫn bạn thực hiện Debug trên XCode trong tình huống chủ động đặt Breakpoint
- Bạn có thể đặt Breakpoint tại dòng code bất kỳ trong project của mình bằng cách click chuột vào vùng hiển thị dòng code, ví dụ hình ảnh dưới của mình là dòng 29.
- Chạy ứng dụng theo kịch bản đợi khi nó dừng ở điểm Breakpoint bạn vừa đặt
- Tại điểm Breakpoint đang dừng, để chuyển qua lần lượt các dòng code tiếp theo bạn sử dụng phím tắt F6 (Step Over) hoặc biểu tượng ở phía dưới thanh Debug
- Để nhảy vào trong một hàm nào đó bạn dùng phím tắt F7 (Step Into) hoặc biểu tượng ở thanh Debug.
- Để thoát khỏi hàm vừa nhảy vào ra dòng lệnh tiếp theo ở bên ngoài, bạn sử dụng phím tắt F8 (Step Out)
- Và tiếp tục chạy chương trình bằng cách nhấn vào biểu tượng như nút Play trên thanh Debug (sau biểu tượng Breakpoint màu xanh)
Chúc các bạn thành công nhé!
——————— END ——————–