Làm thế nào để debug 1 chương trình C? Tác dụng của việc debug là gì?

Mọi người có thể giúp mình làm thế nào để debug 1 chuong trình c , và tác dụng của nó mình tìm gg mà ko thấy bài nào chỉ các debug chương trình

Theo mình có 2 kiểu debug phổ biến:
1, Debug bằng tool/ IDE : Cách debug thì từng tool/ IDE
2, Debug bằng não : Cách debug thì tùy từng não =)) :joy::joy:

Tác dụng của debug là để tìm ra bug :joy::joy:

1 Like
  • C người ta dùng gdb để debug.
  • Bạn goggle: How to dubug a c program using gdb sẽ ra rất nhiều hướng dẫn.
  • Debug là để phát hiện ra lỗi trong 1 chương trình, ví dụ 1 hàm như vậy bạn xem nó có khả năng lỗi gì
int tinhTong(int *A, int n) {
  int x, i = 0;
  while(i < n) {
    x = x + A[i]
   ++i;
   }
   return x;
}

Chỉ lúc thực thi ra kết quả sai, rồi mình mới debug, thực thi từng dòng code 1 mới phát hiện ra lỗi.

** bạm mở terminal lên gõ gdb -version, nếu có in ra thông tin thì mình chỉ bạn debug cho :smile:

Chính xác là nếu compile bằng gcc (hoặc MinGW trên Windows) mới dùng gdb để debug. msvc thì có integrated debugger trong Visual Studio hoặc VS Code đó. Nên nếu chủ thớt đang dùng Windows thì chắc khả năng cao là msvc :joy:.

Mà debug bằng gdb không thì thốn lắm, mình hay kiếm mấy cái gdb frontend như gperf hay gdbgui hơn.

:smiling_imp: Hù cho bạn đó sợ :smiling_imp: :smiling_imp:

1 Like

Chẳng trách thớt không (dám) reply :joy: :joy: :joy:

Tui toàn debug bằng tay, kiểu cho cout ra rồi dò từ từ :))

1 Like

em mới học it hết học kì 1 của năm 1 từ từ thôi tha em

Năm 1 vẫn có thể viết công cụ test suite cho các bạn chạy bài tập lớn được rồi (console app). Soạn test case, chạy và đánh giá benchmark.

1 Like

Những sẽ có những lúc không thể cout nổi nếu là segmentation fault :joy:

1 Like

Ngày xưa thầy nói 1 câu mà tới giờ mình mới dần dần thấm, có thể nói “không thể tự nhận là một lập trình viên nếu không biết debug” không lẻ mỗi lần có lỗi là ngồi cuốn lên, hay sửa đại hên xui ?. project nhỏ xíu như hello world còn được, chứ project lớn, khi nó lỗi, bạn không kiễm soát được luồng xử lý của nó, thì thua, lúc này debug sẽ giúp cho bạn dễ dàng hơn trong việc tìm lỗi ==> tìm được hướng giải quyết

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?