Câu trả lời:
info locals
- Xem tất cả các biến cục bộ; danh sách - xem nguồn; rbreak - break trên hàm khớp với biểu thức chính quy.
set print object on
cho các phần tử đa hình và set print elements 0
là hai lệnh tôi sử dụng rất thường xuyên. Khá hữu ích.
t a a bt
(ý nghĩa thread apply all backtrace
). Có thể được sử dụng với (gần như) tất cả các lệnh khác. Đặc biệt hữu ích với bt full
.
Bắt đầu gdb với giao diện người dùng văn bản
gdb -tui
Bắt đầu từ gdb 7.0, có gỡ lỗi đảo ngược , vì vậy các lệnh yêu thích mới của bạn là:
* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.
Thay vì khởi chạy GDB với thông số "-tui", bạn cũng có thể chuyển sang chế độ văn bản sau một thời gian sử dụng bằng cách nhập "wh".
C-x a
. Bạn cũng có thể chuyển đổi chế độ xem với C-x 1
và C-x 2
khi ở chế độ tui để xem lắp ráp (nếu cần).
Ví dụ: các macro được định nghĩa trong stl-view.gdb
Sử dụng -command=<file with gdb commands>
tùy chọn trong khi bắn gdb. Giống như-x <command file>
. Tệp lệnh này có thể chứa các lệnh gdb như điểm dừng, tùy chọn, v.v ... Hữu ích trong trường hợp một thực thi cụ thể cần được đưa qua các lần chạy gỡ lỗi liên tiếp bằng gdb.
-iex
tùy chọn để thêm các lệnh riêng lẻ trên dòng lệnh gdb.
scripting gdb là một mẹo hay, ngoài ra tôi thích cài đặt bật / tắt bộ lập lịch để ngăn việc chạy các luồng khác khi bạn đang bước vào một.
set scheduler-locking on
bên trong gdb
thông tin chủ đề để liệt kê tất cả các chủ đề đang hoạt động và f (#) -> # số chủ đề bạn muốn chuyển sang
đôi khi tôi sử dụng gdb để chuyển đổi từ hex sang thập phân hoặc nhị phân, rất tiện dụng thay vì mở máy tính
Thay vì bắt đầu gdb với tùy chọn -tui để xem quy trình con có chứa màn hình làm nổi bật dòng mã thực thi trong chương trình của bạn, hãy nhảy vào và ra khỏi tính năng này với Cx o và Cx a. Điều này hữu ích nếu bạn đang sử dụng tính năng này và những gì tạm thời không sử dụng nó để bạn có thể sử dụng mũi tên lên để nhận lệnh trước đó.
focus cmd
để mũi tên lên / xuống hoạt động. Bạn chuyển lại bằng cách sử dụng focus src
.
Để gỡ lỗi STL, hãy thêm nội dung vào .gdbinit, làm theo các hướng dẫn sau: