Tổng số lượt xem trang

Thứ Sáu, 28 tháng 6, 2013

Các thao tác dừng GDB

trong console của GDB, để thực thi các lệnh của linux

(gdb) shell [lenh_linux]

ví dụ:
(gdb) shell clear
(gdb) shell ls

------------------------------------------
để set break point ở một vị trí nào đó:

(gdb) break [so_dong]
hoặc
(gdb) break [ten_ham]
ví dụ:
cần đặt breakpoint tại dòng thứ 10 trong main.c
(gdb) break 10

hoặc đặt breakpoint tại hàm main
(gdb) break main

------------------------------------------
để xóa breakpoint
(gdb) delete [so_thu_tu_break_point]

ví dụ
xóa breakpoint thứ 2
(gdb) delete 2

------------------------------------------
sau khi đã đặt breakpoint( hoặc ko cần đặt breakpoint tùy cách chúng ta debug), thì chúng ta bắt đầu chạy chương trình bằng lệnh sau
(gdb) run

------------------------------------------
muốn xem chương trình đã dừng ở đâu
(gdb) list

ở ví dụ của chúng ta chỉ có hàm main, do đó khi dùng lệnh list thì sẽ hiển thị duy nhất các dòng code của hàm main. Còn nếu chương trình đang chạy ở 1 function nào đó, ví dụ function aaaa thì sẽ list code của function đó.

------------------------------------------
chúng ta muốn chương trình chạy dòng lệnh kế tiếp thì trong gdb gõ
(gdb) next [so_dong]

nếu không có [so_dong ] thì dòng lệnh kế tiếp dòng lệnh hiện tại được thực thi, còn nếu có [so_dong] thì chương trình sẽ thực thi từ dòng lệnh hiện tại tới dòng lệnh [so_dong]

------------------------------------------
muốn chạy vào bên trong thân hàm
(gdb) step

------------------------------------------
muốn quay lại đầu hàm thì dùng lệnh
(gdb) return

------------------------------------------
muốn chương trình thực thi tiếp cho đến breakpoint kế hoặc đếnt hết chương trình
(gdb) continue

------------------------------------------
trong quá trình chạy debug chúng ta muốn xem một biến có giá trị bằng bao nhiêu
(gdb) display [ten_bien]

ví dụ: trong hàm main của chúng ta có biến date, mà muốn xem biến này chúng ta thực hiện lệnh
(gdb) display date

------------------------------------------
muốn in giá trị của 1 biến trong console
(gdb) print [ten_bien]

ví dụ
(gdb) print date

------------------------------------------
muốn in địa chỉ của biến
(gdb) print &[ten_bien]

ví dụ
(gdb) print &date

------------------------------------------
hiển thị kiểu dữ liệu của biến
(gdb) ptype [ten_bien]
hoặc
(gdb) whatis [ten_bien]

ví dụ
(gdb) ptype date

------------------------------------------
gán giá trị cho 1 biến
(gdb) set variable [ten_bien] = [value]
(gdb) continue

ví dụ:
(gdb) set variable date = 15
(gdb) continue

------------------------------------------
compile lại file thực thi
(gdb) make

Nguồn : http://mathhoang.blogspot.com/2010/12/huong-dan-debug-chuong-trinh-voi-gdb.html
Cái này không thể thiếu nhé :D

Không có nhận xét nào:

Đăng nhận xét