Sử dụng lệnh "biểu thức" trong trình gỡ lỗi. Sử dụng nó tương đối đơn giản. Chỉ cần gõ biểu thức lệnh và nhấn Enter. Sau đó bạn sẽ được nhắc nhập một biểu thức. Dưới đây là ví dụ
(lldb) expression
Enter expressions, then terminate with an empty line to evaluate:
2+2
(int) $2 = 4
Tôi cũng đính kèm thông tin trợ giúp cho lệnh biểu thức bên dưới. Hi vọng điêu nay co ich.
Đánh giá biểu thức C/ObjC/C++ trong ngữ cảnh chương trình hiện tại, sử dụng người dùng các biến và biến được xác định hiện có trong phạm vi. Lệnh này mất đầu vào 'thô' (không cần trích dẫn nội dung).
Cú pháp: biểu hiện -
lệnh Tùy chọn Cách sử dụng: biểu [-f] [G] [-a] [-d] [-t] [-u] - biểu [-o ] [-a] [-d] [-t] [-u] - biểu
-G <gdb-format> (--gdb-format <gdb-format>)
Specify a format using a GDB format specifier string.
-a <boolean> (--all-threads <boolean>)
Should we run all threads if the execution doesn't complete on one
thread.
-d <boolean> (--dynamic-value <boolean>)
Upcast the value resulting from the expression to its dynamic type
if available.
-f <format> (--format <format>)
Specify a format to be used for display.
-o (--object-description)
Print the object description of the value resulting from the
expression.
-t <unsigned-integer> (--timeout <unsigned-integer>)
Timeout value for running the expression.
-u <boolean> (--unwind-on-error <boolean>)
Clean up program state if the expression causes a crash, breakpoint
hit or signal.
Timeouts: Nếu biểu thức có thể được đánh giá tĩnh (không runnning code) sau đó nó sẽ được. Nếu không, theo mặc định, cụm từ sẽ chạy trên chuỗi hiện tại với thời gian chờ ngắn: hiện tại là 0,25 giây. Nếu nó không trở lại trong thời gian đó, việc đánh giá sẽ bị gián đoạn và tiếp tục với tất cả các chuỗi đang chạy. Bạn có thể sử dụng tùy chọn -a để tắt tính năng thử lại trên tất cả các chủ đề . Bạn có thể sử dụng tùy chọn -t để đặt thời gian chờ ngắn hơn.
Biến do người dùng xác định: Bạn có thể xác định các biến của riêng mình để thuận tiện hoặc được sử dụng trong các biểu thức tiếp theo. Bạn xác định chúng giống như cách bạn định nghĩa biến trong C. Nếu ký tự đầu tiên của biến do người dùng xác định là $, thì giá trị của biến sẽ có sẵn trong các biểu thức trong tương lai, nếu không nó sẽ chỉ có sẵn trong biểu thức hiện tại .
Ví dụ:
expr my_struct->a = my_array[3]
expr -f bin -- (index * 8) + 5
expr unsigned int $foo = 5
expr char c[] = "foo"; c[0]
LƯU Ý QUAN TRỌNG: Bởi vì lệnh này có đầu vào 'thô', nếu bạn sử dụng bất kỳ tùy chọn lệnh bạn phải sử dụng '-' giữa cuối các tùy chọn lệnh và đầu của đầu vào thô.
Nguồn
2013-03-05 19:19:57
"po" là gì? Bảng điều khiển gdb sẽ cho phép bạn đánh giá một tập hợp lớn các hàm tùy ý. Điều gì đặc biệt mà bạn đang cố gắng làm? –
"po" là đối tượng in. Đó là phần mở rộng của Apple cho gcc mà kết quả trong thông điệp * description * được gửi tới một cá thể ObjC để nó trả về mô tả của nó. – diciu
Ah, đó là lý do tại sao tôi không nghe nói về nó. Vui vẻ. –