Cách sửa lỗi không debug được trong visual 2023 năm 2024

Bài viết hôm nay trong chuỗi ‘Những điều ở trường mình hong dạy’ của bạn Công Minh sẽ tiếp tục chia sẻ thêm những kiến thức thực tiễn về Bug vs Debug. Cùng đọc nhé!

Heluu mọi người! Tiếp tục với Part 1 còn đang dang dở, ở Part này mình sẽ cùng nhau tìm hiểu kỹ năng không thể thiếu khi chúng ta lập trình nhen.

Debug là gì?

Debug là quá trình tìm kiếm bug hoặc nguyên nhân gây ra bug để có hướng sửa lỗi (fix bug).

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Mục đích của việc debug

Code được là một chuyện, hiểu được code là chuyện khác

Ngoài việc giúp fix bug, debug còn giúp tụi mình hiểu rõ flow (luồng) chạy của code hơn ?

Code 1 tiếng Debug 3 tiếng

Hồi còn đi học, mình nghĩ sửa lỗi (fix bug) là chuyện siêu dễ, code ra một chức năng mới khó

Nhưng sau khi đi làm mới biết, thời gian debug tốn thời gian hiều hơn khi chúng ta code ?

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Debug là một nghệ thuật

Trong quá trình phát triển một ứng dụng phần mềm thì việc dính bug là điều không thể tránh khỏi. Quan trọng là cách tụi mình giải quyết mấy con bug này ra sao thui hen.

Để mình bày cho mọi người một số phương pháp debug nè!

  • Debugging Tool: đây là công cụ hỗ trợ Dev tụi mình debug, thông thường sẽ được tích hợp vào IDE (Integrated development environment).
    • Ai mà chưa biết cách xài debugging tool thì xem ví dụ này với mình nha (mình dùng Visual Studio và code C#)
    • Ví dụ mình có đoạn code như thế này

Cách sửa lỗi không debug được trong visual 2023 năm 2024

  • * Nếu mình tính nhẩm là mình không biết kết quả của biến result của mình sẽ ra bao nhiêu rùi đó ?
    • Vậy nên mình sẽ đặt breakpoint (có thể hiểu nôm na là điểm dừng – tức là khi nào tới điểm này thì code sẽ dừng lại để mình kiểm tra kết quả). Breakpoint sẽ có hình cái chấm màu đỏ đỏ nè (mình đặt ở dòng thứ 11). Mọi người muốn xem kết quả của dòng nào thì đặt ở đó nhe, trường hợp này mình muốn coi kết quả của result nên đặt ở dòng 11 nè.

Cách sửa lỗi không debug được trong visual 2023 năm 2024

  • * Sau khi chạy source, đến dòng 11 chương trình sẽ dừng lại để mình có thể xem kết quả có đúng với mong muốn của mình hay không để có thể thực hiện fix bug lun nè.

Cách sửa lỗi không debug được trong visual 2023 năm 2024

  • Printlining: thông thường để kiểm tra 1 biến (đơn giản) mình rât hay dùng cách này. Cách này đơn giản là mọi người “print” ra giá trị trên màn hình console để có thể kiểm tra.
    • Cách này sẽ tuỳ thuộc vào ngôn ngữ mọi người đang code sẽ có cách “print” khác nhau nhe.
    • Mình code C# nên sẽ print như thế này.

Cách sửa lỗi không debug được trong visual 2023 năm 2024

  • * Và khi mình run source thì trên console sẽ thể hiện như thế này

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Làm sao để hạn chế bug?

  • Comment code: comment (chú thích) lại những gì mình đang code.

Cách sửa lỗi không debug được trong visual 2023 năm 2024

  • Đặt tên hàm có ý nghĩa: tên hàm thông thường sẽ đi liền với 1 hành động nào đó.

Cách sửa lỗi không debug được trong visual 2023 năm 2024

  • Ai mà đặt tên hàm là hehe là xong luôn đó nghe =)))))))

Tổng kết

  • Thank kiu mọi người đã đọc tới đâyyy ?
  • Mọi người cũng đã hiểu được tại sao lại có bug, và cách để hạn chế bug rùi đúng hong?
  • Debug là một kỹ năng rất cần thiết trong quá trình code của anh em Dev tụi mình, ai mà chưa quen hoặc mới nghe qua lần đầu thì nên tập sử dụng ngay từ bây giờ đi nhe.

*Follow X-Profile và tham gia cộng đồng ‘Viết code cả ngày‘ để đọc thêm nhiều bài viết bổ ích về ngành IT nhé!

Debug có thể gặp khó khăn. Di chuyển từng bước trong 1 hàm để hiểu code sai chỗ nào, lần ngược để tìm các lời gọi hàm và xem giá trị các biểu thức…Trong trường hợp cần xem giá trị các biểu thức hoặc tìm danh sách các biến cục bộ có thể làm mất thời gian. Tuy nhiên, điều dễ dàng là nếu bạn chỉ cần di chuyển chuột lên vị trí biến, đối tượng, sau đó mở rộng các thành phần bằng cách click, bạn sẽ tìm thấy các thuộc tính nhanh chóng và thuận tiện.

2. Thay đổi giá trị on-the-fly

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Trình debug còn là công cụ phân tích các nguy cơ và các hành vi gây lỗi. Nhiều lỗi được ngăn chặn bằng cách di chuyển từng bước trong các hàm mới được viết và kiểm tra hành vi của chúng có như mong đợi không. Đôi khi bạn tự hỏi, “hàm này có chạy đúng không nếu điều kiện là true?”, Và trong hầu hết trường hợp, không cần phải thay đổi mã hoặc debug lại. Chỉ việc di chuyển chuột lên biến, double click lên giá trị và thay đổi thành 1 giá trị mới và tiếp tục debug.

3. Gán câu lệnh kế tiếp

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Một trường hợp debug điển hình là phân tích lý do 1 hàm gọi bị lỗi bằng cách di chuyển từng bước vào hàm. Và những gì bạn cần làm khi tìm ra hàm được gọi từ các hàm khác sinh ra lỗi? Restart lại quá trình debug? Có 1 ý tưởng hay hơn: chỉ cần kéo (drag) đánh dấu câu lệnh màu vàng đến dòng mà bạn muốn thực thi tiếp theo giống như hàm vừa bị lỗi, và đơn giản là debug vào hàm.

4. Chỉnh sửa và tiếp tục

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Debug 1 chương trình phức tạp, hoặc 1 plug-in? Tìm thấy 1 lỗi nhưng không muốn mất thời gian ngừng lại, biên dịch và debug trở lại lần nữa; hàm được gọi cũng dùng thủ thuật trước (3). Chỉ việc khắc phục bug và tiếp tục debug. Visual Studio sẽ chỉnh sửa chương trình và tiếp tục debug mà không cần restart quá trình debug.

Tuy nhiên, thủ thuật này có sự giới hạn. Trước tiên, nó không hoạt động trên các đoạn mã được viết cho HĐH 64-bit. Vào Project Settings, Build page, chọn Platform Target là x86. Đừng lo lắng, target platform sẽ do mình quyết định.

Thứ hai, thủ thuật này chỉ thực hiện được trong nội bộ 1 hàm. Nếu bạn thay đổi khai báo hàm, thêm mới hàm hoặc lớp thì phải restart lại quá trình debug.

5. Cửa sổ watch thuận tiện

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Có lẽ mỗi debugger hiện đại đều có cửa sổ watch. Tuy nhiên điều tuyệt vời của Visual Studio là sự dễ dàng mà bạn có thể thêm hoặc gỡ bỏ các biến. Chỉ cần click 1 dòng rỗng, nhập biểu thức và nhấn enter. Hoặc đơn giản nhấn phím delete để xóa bỏ 1 biểu thức không còn dùng đến.

Thông tin nhận được từ cửa sổ watch không chỉ giới hạn là các biến bình thường. Bạn có thể nhập $handles để truy vết số lượng handles được mở bởi ứng dụng (và tìm các handle bị leak), $err để xem mã lỗi của hàm sau cùng (và dùng Tools –> Error Lookup để xem mô tả có nghĩa), hoặc @eax (@rax cho 64-bit) để xem thông tin giá trị trả về của 1 hàm.

6. Các breakpoint có điều kiện

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Nếu trong chu kỳ tồn tại của ứng dụng cần debug có quá nhiều vị trí cần đặt breakpoint, bạn có thể dễ dàng đặt điều kiện cho chúng. Chỉ đơn giản đặt điều kiện cho 1 breakpoint và Visual Studio tự động bỏ qua breakpoint nếu điều kiện chưa đúng. Điều này đặc biệt hữu ích khi đoạn mã breakpoint được gọi quá nhiều lần rất mất thời gian debug.

7. Go to definition

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Tính năng không liên quan trực tiếp đến debug, dùng để khám phá các project lớn. Nếu bạn tìm bug trong đoạn code mà bạn không tự tay viết thì thường bạn sẽ hỏi: “loại nó là gì, được khai báo ở đâu?” hoặc “hàm này làm việc gì?”.

8. Cửa sổ Command

Cách sửa lỗi không debug được trong visual 2023 năm 2024

Visual Studio hỗ trợ cửa sổ Command (View –> Other Windows –> Command Windows).

Mọi khó khăn khi tiếp cận với một ngôn ngữ lập trình mới hay cần sự tư vấn, định hướng theo ngôn ngữ lập trình nào, công nghệ nào, phương pháp học hiệu quả,…? Các bạn hãy liên hệ với