2. Định hướng phát triển
2.4 Đặc tả lệnh
#: Xác định bỏ qua phần còn lại của dòng. Thường dùng đặt trước các lời giải thích cho chương trình được rõ nghiữa hơn.
Alias-tạo ra hoặc xem kại một lệnh do người dùng định nghĩa.
Tạo ra một lệnh mới do người dùng định nghĩa. Cấu trúc:
alias command-name command-body
Xem lại một lệnh đã tồn tại trước rồi. Cấu trúc:
alias [command-name]
Trong đó command-name là tên của lệnh được định nghĩa. Command- body xác định lệnh được định nghĩa là lệnh đơn giản hay là lệnh hình thành bằng cách ghép các lệnh lại với nhau.
Câu lệnh alias sẽ gắn lệnh mà người dùng vừa định nghĩa với tập lệnh của chương trình debugger vì vậy sau đó nó được sử dụng nh một lệnh của chương trình debugger. Chú ý rằng nếu câu lệnh alias mà không có tham số kềm theo thì kết quả nhận được sẽ là toàn bộ các lệnh do người dùng định nghĩa.
Câu lệnh alias khi thực hiện nếu người dùng cố gắng định nghĩa lại một lệnh của chương trình debugger thì sẽ sinh ra lỗi và xuất hiện thông báo lỗi tương ứng. Còn nếu khi muốn xem một lệnh không tồn tại hoặc đã bị xoá bởi lệnh unalias thì một cảnh báo sẽ được sinh ra để báo rằng lệnh như trên không tồn tại.Ví dụ:
alias nt next Định nghĩa một lệnh nt để thực hiện lệnh tiếp theo.
alias nt Hiển thị định nghĩa về lệnh nt
alias step2 “step;step” Định nghĩa lệnh step2 để thực hiện hai lệnh step trên cùng một dòng.
[0.*] alias step0 “step” Định nghĩa lệnh step 0 hỗ trợ mọi luồng trong tiến trình 0
alias steptoo “step0;[1.*] step” Định nghĩa lệnh steptoo thực hiện đòng thời hai lệnh, lệnh đầu ảnh hưởng đến mọi luồng trong tiến trình 0, lệnh thứ hai tác động tương tự lê tiến trình 1
Unalias: lệnh này ngược với lệnh alias ở trên. Cấu trúc :
unalias {command-name | -all}
Cũng như alias như lệnh alias lệnh unalias sẽ gặp lỗi nếu người sử dụng cố gắng xoá đi một lệnh của chương trình debugger. Ví dụ:
unalias step2 loại bỏ lệnh step2 ra khỏi chương trình, chú ý rằng nếu lệnh step2 được sử dụng trong việc định nghĩa một lệnh khác thì lệnh này không bị ảnh hương gì bởi lệnh loại bỏ step2
unalias –all lệnh này loại bỏ mọi alias history: tham chiếu đến các lệnh đã được sử dụng
1) Hiển thị lệnh được sử dụng gần nhất. Cú pháp:
history [num_commands]
2) Thực hiện lại lệnh được thực hiện gần nhất. Cú pháp:
!!
3) Thực hiện lại một lệnh đã được thực hiện trước đây. Cú pháp:
! {command_id | rel_command_id | command_string}
Lệnh history thực hiện một vài thao tác có liên quan đến lệnh cần được thực hiện lại được lưu trong command history list, theo mặc định sẽ có 20 lệnh được lưu lại trong danh sách này, kích thước cảu danh sách này được lưu trong biến trạng thái MAX_HISTORY và có thể thay đổi được. Ví dụ:
history hiển thị danh sách của 20 lênh được thực hiên gần nhất
history 10 hiển thị 10 lệnh được thực hiên gần đây nhất
!! thực hiện lại lệnh ngay trước
!15 thực hiện lệnh thứ 15 trong danh sách
!print thực hiện lệnh print cuối cùng
!pr thực lệnh cuối cùng mà bắt đầu bằng chữ pr set: thay đổi hoặc xem giá trị của các biến trạng thái
1) Thay đổi giá trị của biến trạng thái
set debugger-var = value
2) Xem giá trị hiện thời của một biến trạng thái
set [debugger-var]
Nếu lệnh này không có tham số kèm theo thì tên và giá trị hiện thời của toàn bộ các biến trạng thái sẽ đượ hiển thị. Các biến trạng thái có thể áp dụng lệnh set được HPD hỗ trợ là:
Ví dụ:
set PROMPT = "Fixme% " đặt promt là Fixme% và dấu cách theo sau
unset: phục hồi lại các giá trị mặc địh cho các biến trạng thái.
unset {debugger-var | -all}
debugger-var: tên của biến trạng thái được phục hồi
-all: phục hồi giá trị mặc định cho mọi biến trạng thái
Tương tự như lệnh set lệnh unset chỉ có tác dụng với một số biến nhất định.
Input: đọc và thực hiện lệnhđược lưu giữ trong file
Lệnh input đọc và thực hiện tuần tự từng lệnh debugger được lưu trữ trong file. Chương trình debugger không thực hiện lại các lệnh này nhưng việc hiển thị kết quả diễn ra hoàn toàn bình thường.
Info: cho biết thông tin về môi trườn debugger. Lệnh này dùng để hiển thị những thông tin chung về môi trường tiến hành debugger