Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
130,5 KB
Nội dung
1 Chủ đề tuần này Làm thế nào để sử dụng công cụgỡlỗi (gdb) Cấu trúc dữ liệu cây - Cây nhị fân - Cây nhị fân tìm kiếm Đệ quy tiến trình trên cây. 2 Gdb để gỡlỗi (1) gdb: the Gnu DeBugger (công cụgỡlỗi của Gnu). http://www.cs.caltech.edu/courses/cs11/material/c/mike/ misc/gdb.html Sử dụng khi lõi chương trình hỏng. Hoặc khi ta muốn đi xuyên suốt sự thi hành của chương trình theo từng dòng 1. 3 Gdb for Debugging (2) Trước khi sử dụng gdb : - Phải biên dịch mã nguồn C với cờ phụ là -g . - Điều này sẽ giúp đặt tất cả mã nguồn vào dạng nhị fân có thể thực thi được. - Sau đó ta có thể thực thi chương trình như sau: gdb chuongtrinh - Nuôi dưỡng 1 môi trường dịch. 4 Gdb for Debugging (3) Gdb> run Chương trình chạy. Nếu tất cả đều tốt, chương trình sẽ thoát thành công, trả bạn về dấu nhắc. Nếu có lỗi thì gdb sẽ báo cho bạn biết và huỷ bỏ chương trình. 5 Gdb – Các câu lệnh cơ bản (1) Dò ngược ngăn xếp (“where”) - Chương trình bị lỗi - Đâu là dòng lệnh cuối cùng trong chương trình được thực thi trước khi gặp lỗi? - Đó là điều lệnh where sẽ chỉ ra cho bạn. 6 Gdb – Các câu lệnh cơ bản (2) Xem hình minh hoạ lệnh “where” trong slide tiếng anh tr7. Last call: lần gọi cuối. 7 Gdb – Các câu lệnh cơ bản (3) Tìm kiếm vùng trên cùng của stack dò ngược tương ứng với lỗi của bạn. Đề fòng với: - Free vùng nhớ mà bạn không cấp phát trước đó. - Truy nhập mảng sau phần tử cuối cùng của nó. - Con trỏ quy chiếu ngược không trỏ tới phần của khối đã được malloc(). 8 Gdb – Các câu lệnh cơ bản (4) Các câu lệnh break,continue,next, step - break: dừng sự thi hành ở dòng được chỉ ra. gdb> break foo.c: 100(đặt điểm break). - continue: tiếp tục lại sự thi hành từ điểm đó. - next: thực thi dòng lệnh tiếp theo, sau đó dừng lại. - step: thực thi câu lệnh tiếp theo. • Đi vào trong hàm nếu cần thiết (next thì không). 9 Gdb – Các câu lệnh cơ bản (5) Lệnh print và display print: in ra giá trị của bất cứ biểu thức nào trong chương trình. gdb> print i $1 = 100 display: in ra 1 gia trị cụ thể mỗi lần mà thi hành dừng lại. gdb> display i 10 Gdb – in mảng (1) print cũng có thể dùng để in ra mảng int arr[] = {1,2,3}; gdb> print arr $1 = {1,2,3} ($1 chỉ là tên của kết quả) print $1 $2 = {1,2,3} [...]... $2 = {1, 2, 3} 12 Gdb – các kí tự viết tắt Các câu lệnh gdb thông thường có các viết tắt sau: - p (giống print) - c (giống continue) - n (giống next) - s (giống step) Thuận tiện hơn để sử dụng khi gỡ lỗi 13 Cây,cây nhị fân,cây tìm kiếm nhị fân Danh sách liên kết là 1 cấu trúc tuyến tính, và rất khó sử dụng nó để tổ chức biểu diễn các đối tượng phân cấp Mặc dù stack và queue cũng fản ánh đôi . nào để sử dụng công cụ gỡ lỗi (gdb) Cấu trúc dữ liệu cây - Cây nhị fân - Cây nhị fân tìm kiếm Đệ quy tiến trình trên cây. 2 Gdb để gỡ lỗi (1) gdb: the Gnu DeBugger (công cụ gỡ lỗi của Gnu). http://www.cs.caltech.edu/courses/cs11/material/c/mike/ misc/gdb.html Sử. thoát thành công, trả bạn về dấu nhắc. Nếu có lỗi thì gdb sẽ báo cho bạn biết và huỷ bỏ chương trình. 5 Gdb – Các câu lệnh cơ bản (1) Dò ngược ngăn xếp (“where”) - Chương trình bị lỗi - Đâu. print) - c (giống continue) - n (giống next) - s (giống step) Thuận tiện hơn để sử dụng khi gỡ lỗi. 14 Cây,cây nhị fân,cây tìm kiếm nhị fân Danh sách liên kết là 1 cấu trúc tuyến tính, và