Categories: Hỏi đáp

‘Debug là gì?’ và ‘Vì sao lập trình viên cần phải biết Debug?’

Đối với những người mới bước vào con đường lập trình hay cả những người đã mang danh ‘lão luyện’ cũng khó thể tránh khỏi việc xuất hiện những lỗi không mong muốn trong quá trình viết và thực thi programs. Vì thế việc phát hiện và sửa lỗi trong programs là một kỹ năng thực sự quan trọng đối với lập trình viên. Vậy tại sao chúng ta không cùng nhau tìm hiểu về Dubug và những cách Dubug nhé ?

1. BUG là gì?

  • Bugs là các con bọ, bọ này ám chỉ các lỗi xảy ra trong logic, hay bất kỳ vấn đề gì gây ra việc làm cho ứng dụng không thực thi được hoặc thực thi sai. 
  • Bugs luôn tiềm ẩn ở mọi nơi, và ta không thể lường trước được mọi tình huống có thể xảy ra mà chỉ có thể cố gắng làm giảm nó đến mức thấp nhất có thể tùy vào khả năng của ta tại thời điểm phát triển và bảo trì ứng dụng.

2. DEBUG là gì?

  • Debug là quá trình tìm kiếm ra lỗi hay nguyên nhân gây ra lỗi (bug ở đâu) để có hướng sửa lỗi (fix bug).
  • Programmers chính là các công cụ sinh ra Bugs nhiều nhất vì họ lập trình. Và chính vì vậy, công cụ tốt nhất để gỡ bỏ bớt Bugs cũng chính là các Programmers
  • Những lý thuyết, những thiết kế phần mềm được tạo ra rất lý tưởng. Nhưng lập trình viên thì lại không làm việc trong thế giới lý tưởng đó. Khi phần mềm được hiện thực thì rất nhiều bug (lỗi) bắt đầu phát sinh. Bug đó có thể là từ chương trình của bạn viết ra hoặc là từ chương trình mà bạn kế thừa từ người khác. Khi chương trình chạy và kết quả không phải là những gì mà bạn mong đợi, tức là đã có lỗi. Vậy là những dự đoán của bạn đã bị sai hoặc là có gì đó phát sinh khi chương trình được thực thi mà bạn không lường trước được. Đôi khi chỉ cần nhìn vào source code là bạn tìm ra ngay nguyên nhân nhưng khi cách đó không mang lại kết quả thì lúc này bạn cần phải Debug.

3. Mục đích của việc Debug

  • Mục đích của Debug không chỉ là để loại bỏ lỗi (error) khỏi chương trình mà quan trọng hơn còn để giúp lập trình viên hiểu rõ hơn sự thực thi của chương trình. Một lập trình viên không có khả năng Debug hiệu quả thì cũng giống như bị mù vậy.

4. Các phương pháp debug

  • Debugging Tool – dùng công cụ để Debug – là phương pháp Debug đi sâu vào source code nhất. Thường thì chúng ta gọi những Debugging Tool này là Debugger. Những Debugger phần mềm thông dụng là Microsoft Visual Studio Debugger , GNU Debugger . Ngoài ra còn có những Debugger phần cứng được thiết kế kèm cho các hệ thống nhúng (Embedded System) bởi các thiết kế nhúng không phải là những thiết kế mang tính mục đích chung (General-purpose) mà thường được thiết kế trên các platform riêng biệt phục vụ các ứng ứng dụng riêng biệt nên cũng cần những Debugger đặc thù đi kèm.
  • Printlining: đơn giản là bạn thêm vào source code của bạn những dòng lệnh để in ra những thông tin mà bạn cần theo dõi trong quá trình thực thi. Chẳng hạn nếu bạn dùng Arduino IDE thì bạn sẽ không có Debugger và cách Debug phù hợp nhất là bạn dùng Serial.print().
  • Logging: tạo ra một biểu mẫu để ghi (log) lại những thông tin sau khi chương trình thực thi. Phân tích nguyên nhân lỗi dựa trên những thông tin này.
  • Ngoài ra thì còn một phương pháp mà cá nhân mình cho là rất hiệu quả đó là phương pháp – Nhờ người khác debug – là việc bạn vác đoạn code ra nhờ người có kinh nghiệm hơn debug dùm.

Tạm Kết.

Một vài mẹo viết code kiểm soát lỗi nhanh:

  • Dùng comment(chú thích) sau khi viết xong 1 đoạn code về 1 phần nào đó để sau này dễ tìm và sửa.
  • Đặt tên các hàm các biến…… có ý nghĩa để dễ kiểm soát và tìm lỗi.
  • Hoặc có thể sử dụng Breakpoints để rà soát xem program của bạn chạy đến vị trí nào của code và đến đó có đúng không.
  • Đừng bỏ qua các Error Message nó sẽ giúp chúng ta có thể tìm ra số dòng code và sửa rất nhanh.

Chúc các bạn có thể học lập trình một cách tốt nhất !

[external_link_head]

Là gì? Ddlg

D.d.l.g là viết tắt của từ Daddy Dom Little Girl, dịch tạm là cha chăm sóc của bé gái nhỏ.

Tác giả: @anny

Ngày đăng: (852)3952 0100:00:29

[external_link offset=1]

Glass Fiber là gì?

Glass Fiber hay Fiber Glass là sợi thủy tinh, đây là loại sợi sử dụng để gia cường vô cùng hiệu quả trong công nghiệp sản xuất vật liệu composite.

Tác giả: @laocoi

Ngày đăng: (852)3952 0100:42:48

PSDT là file gì?

File .psdt là file do phần mềm photoshop tạo ra. Điểm khác biệt của PSDT và PSD là file PSDT là file không có tiêu đề, bắt buộc bạn lưu file ra một file mới, chống ghi đè file gốc.

Tác giả: @laocoi

Ngày đăng: (852)3952 0100:09:28

Thẻ priority pass là gì?

Thẻ Priority Pass – viết tắt là PP, là một loại thẻ cho phép chủ thẻ vào phòng chờ hạng thương gia, phòng chờ VIP, CIP ở mọi nơi, mọi châu lục, bất kể chủ thẻ bay với hãng hàng không nào và hạng vé gì.

Tác giả: @laocoi

Ngày đăng: (852)3952 0100:56:04

[external_link offset=2]

Sự khác biệt giữa bệnh dịch, đại dịch, sự bùng phát

Có 3 thuật ngữ thường được sử dụng để chỉ về sự lây lan của một loại bệnh mới: Sự bùng phát (Outbreak), Bệnh dịch (Epidemic) và Đại Dịch (Pandemic). Sự khác biệt giữa 3 khái niệm này là gì? Hãy cùng tìm hiểu!

Tác giả: @laocoi

Ngày đăng: (852)3952 0100:26:05

Ram là gì? Cùng tìm hiểu

Ram (Random Access Memory) là bộ nhớ truy cập ngẫu nhiên, đây là một trong những thành phần linh kiện quan trọng cho máy tính bên cạnh vi xử lí cũng như là bộ xử lí đồ họa.

Tác giả: @nhattan

Ngày đăng: (852)3952 0100:27:30

[external_footer]

Recent Posts

Tầm nhìn đầy tham vọng của Hideo Kojima: Tạo ra những trò chơi gây ấn tượng với người ngoài hành tinh

Nhà sáng tạo trò chơi điện tử nổi tiếng Hideo Kojima được nhiều game thủ…

3 tuần ago

Chính thức rồi! Sự kết hợp giữa Magic: The Gathering và Final Fantasy vào năm 2025

Gần đây, Square Enix đã công bố một dự án hợp tác thú vị với…

3 tuần ago

Giá của Assassin’s Creed Shadows Collector’s Edition bất ngờ giảm

Kể từ khi trò chơi được công bố chính thức, nó đã bị bao phủ…

4 tuần ago

Nhà phát triển Tekken 8 xin lỗi và chấp nhận lời chỉ trích của game thủ

Nhà phát triển của Tekken 8 đã xin lỗi và chấp nhận những ý kiến…

4 tuần ago

Các game thủ đối mặt với thử thách từ Great Ape Vegeta trong trò chơi Dragon Ball Sparking! Zero

Trò chơi Dragon Ball mới nhất, có tên gọi Dragon Ball Sparking! Zero, đã được…

1 tháng ago

Thổ Nhĩ Kỳ Cấm Ứng Dụng Discord Theo Sau Nga

Xu hướng cấm ứng dụng Discord tại một số quốc gia đang tiếp diễn. Sau…

1 tháng ago