Môn học kiểm thử xâm nhập bài thực hành gdblesson

18 1 0
Môn học  kiểm thử xâm nhập bài thực hành gdblesson

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN

MÔN HỌC : KIỂM THỬ XÂM NHẬP BÀI THỰC HÀNH: GDBLESSON

GIẢNG VIÊN : ĐINH TRƯỜNG DUY HỌ VÀ TÊN : LÊ PHI

MÃ SINH VIÊN : B20DCAT137 LỚP : D20CQAT01-B

Hà Nội, năm 2024

Trang 2

Contents

1 Tổng quát 3

2 Thực hành 3

2.1 Liệt kê các tệp trong thư mục 3

2.2 Biên dịch chương trình samplemath.c: gcc -g sampleMath.c -o sampleMath 4

2.3 Gỡ lỗi và chỉnh sửa code của samplemath.c 7

2.4 Biên dịch chương trình samplemath2.c 15

2.5 Gỡ lỗi và chỉnh sửa code của samplemath2.c 15

3 Kết luận 18

Trang 3

1.3.1 Giới thiệu về ngôn ngữ lập trình C

Ngôn ngữ lập trình C là một ngôn ngữ bậc trung, thủ tục, được phát triển bởi Dennis Ritchie tại Bell Labs vào năm 1972 Được thiết kế để viết các chương trình hệ thống hiệu quả và linh hoạt, C có những đặc điểm chính như tính linh hoạt, mạnh mẽ, khả năng di động và hiệu quả Ứng dụng của C bao gồm hệ điều hành, phần mềm nhúng, ứng dụng desktop, lập trình trò chơi, và nhiều ứng dụng khác

1.3.2 Trình gỡ lỗi GDB

GDB là trình gỡ lỗi mã nguồn miễn phí và đa nền tảng, hỗ trợ gỡ lỗi cho các chương trình viết bằng nhiều ngôn ngữ lập trình như C, C++, Java, Python, và nhiều ngôn ngữ khác GDB cung cấp các tính năng mạnh mẽ như đặt breakpoint, theo dõi giá trị biến, xem backtrace Với giao diện dòng lệnh đơn giản, GDB có thể mở rộng thông qua các plugin Ứng dụng của GDB bao gồm gỡ lỗi chương trình, phân tích chương trình, và tối ưu hóa hiệu suất chương trình

Cách sử dụng GDB:

Khởi chạy GDB: Sử dụng lệnh "gdb" trong terminal

Mở chương trình: Sử dụng lệnh "open" để mở chương trình cần gỡ lỗi Đặt breakpoint: Sử dụng lệnh "break" để đặt breakpoint tại điểm cần kiểm tra Chạy chương trình: Sử dụng lệnh "run" để khởi động chương trình

Gỡ lỗi chương trình: Khi chương trình dừng lại tại breakpoint, sử dụng các lệnh GDB để gỡ lỗi và kiểm tra chương trình

2 Thực hành

2.1 Liệt kê các tệp trong thư mục

Trang 4

2.2 Biên dịch chương trình samplemath.c: gcc -g sampleMath.c -o sampleMath

Trang 6

Chạy thử chương trình sampleMath: /sampleMath

Trang 7

2.3 Gỡ lỗi và chỉnh sửa code của samplemath.c

Chạy trình gỡ lỗi cho chương trình sampleMath: gdb sampleMath

Trang 8

Để chạy chương trình ta sử dụng lên r hoặc run:

Sử dụng lệnh list để hiển thị code của chương trình:

Trang 9

Đặt break tại dòng thứ 9 (bắt đầu vòng lặp) sau đó chạy lại:

Trang 11

Sử dụng lệnh s (step) để chạy tiếp 1 dòng trong chương trình

Trang 12

Tiếp tục chạy đến khi tìm ra điểm lỗi của chương trình

Trang 13

Như vậy ta thấy điểm lỗi ở đây xảy ra khi vòng lặp tiến tới điểm biến num bằng 0 trong khi đó biến count vẫn lớn hơn 0 dẫn đến việc chương trình tiếp tục thực hiện phép tính 9/0 => điều này khiến chương trình gặp lỗi và dừng lại

Sử dụng lệnh q để thoát khỏi gdb và sử dụng nano để sửa lại chương trình:

Trang 14

Biên dịch và chạy lại chương trình sampleMath

Trang 15

Lúc này ta thấy chương trình đã không còn báo lỗi

2.4 Biên dịch chương trình samplemath2.c Biên dịch và chạy thử chương trình sampleMath2

2.5 Gỡ lỗi và chỉnh sửa code của samplemath2.c Chạy trình gỡ lỗi:

Trang 16

Báo lỗi

Sửa code và biên dịch lại:

Trang 17

Chạy lại chương trình để kiểm tra

Làm theo yêu cầu bài cho chạy với tham số 342

Trang 18

Checkwork

3 Kết luận

Qua bài thực hành này, chúng ta đã học được cách sử dụng gdb để gỡ lỗi cho chương trình chạy bằng ngôn ngữ C Bài thực hành này giúp chúng ta hiểu rõ hơn về cách thức hoạt động của gdb và cách sử dụng gdb để tìm và sửa lỗi trong chương trình Tóm lại, gdb là công cụ gỡ lỗi mạnh mẽ và hiệu quả

Ngày đăng: 29/03/2024, 11:46

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan