Câu trả lời ngắn: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
Câu trả lời dài:
Lịch sử lệnh được trình bày trong hướng dẫn GDB, Lịch sử lệnh 22.3 . Tạo một tệp $HOME/.gdbinit
, thay đổi quyền của nó thành 0600
và thêm nội dung sau:
set history save on
Bạn có thể đặt số lượng các lệnh trong quá khứ được lưu với sau đây. Lệnh được mô tả là "Đặt số lượng lệnh mà gdb giữ trong danh sách lịch sử của nó. Mặc định này là giá trị của biến môi trường GDBHISTSIZE hoặc 256 nếu biến này không được đặt. Giá trị không phải là số của GDBHISTSIZE bị bỏ qua. Nếu kích thước là không giới hạn hoặc nếu GDBHISTSIZE là số âm hoặc chuỗi trống, thì số lệnh gdb giữ trong danh sách lịch sử là không giới hạn " .
set history size <size>
Một lệnh liên quan là set history remove-duplicates <count>
. Lệnh được mô tả là "Kiểm soát loại bỏ các mục lịch sử trùng lặp trong danh sách lịch sử lệnh. Nếu số đếm khác không, gdb sẽ xem lại các mục lịch sử đếm cuối cùng và xóa mục nhập đầu tiên trùng lặp với mục nhập hiện tại được thêm vào danh sách lịch sử lệnh. Nếu số lượng là không giới hạn thì giao diện này không bị ràng buộc. Nếu số lượng là 0, thì việc xóa các mục lịch sử trùng lặp sẽ bị vô hiệu hóa " .
set history remove-duplicates <count>
Theo mặc định, gdb lưu lịch sử vào tệp ./.gdb_history trong thư mục hiện tại . Nếu bạn muốn lịch sử lệnh của bạn không phụ thuộc vào thư mục bạn đang ở, cũng bao gồm:
set history filename ~/.gdb_history
.gdbinit
Tệp phải được người khác bảo vệ chống ghi so với bạn trên linux.