Tôi đang sử dụng lldb bên trong Xcode và một trong các biến của tôi chứa một đoạn dữ liệu JSON lớn. Sử dụng po myVar
không hữu ích lắm khi phân tích dữ liệu này, vì nó sẽ xuất ra trong bảng điều khiển gỡ rối Xcode nhỏ.Chuyển hướng đầu ra lldb thành tệp
Có cách nào để chuyển hướng đầu ra lldb sang tệp không?
tôi thấy here rằng một tính năng như vậy dường như có sẵn trên gdb như:
(gdb) set logging on
(gdb) set logging file /tmp/mem.txt
(gdb) x/512bx 0xbffff3c0
(gdb) set logging off
và được "dịch" trong LLĐB như:
(lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
(lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
(lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
Tuy nhiên, lệnh memory read
sẽ không trợ giúp trong trường hợp của tôi và --outfile
dường như không khả dụng cho lệnh print
.
Cải tiến ở đây: tại sao không làm cho lệnh một cuộc tranh cãi - sau đó bạn có thể nói "print_to_file po self"? Ngoài ra, tôi đã không kiểm tra xem LLDB có tự động reset lại các chốt cho bạn hay không, nhưng có vẻ như thực hành tốt để đặt lại xử lý tệp đầu ra :) Cuối cùng, bạn có thể thực sự chỉ lấy SBCommandReturnObject cho 'lệnh kém hơn' (po self in the ví dụ) và ghi nó vào một tập tin thay vì cướp của stldout của lldb. Tôi thường sẽ cảnh giác với cố gắng để chơi xung quanh với stdin/stdout nếu ở tất cả có thể tránh được. –
Có cách nào để chuyển hướng * tất cả * đầu ra trình gỡ rối vào một tệp không? Tôi đã thử tập lệnh ở trên mà không có dòng 'HandleCommand' và nó không hoạt động. – blackwing
Enrico, bạn có thể xem xét hiển thị một ví dụ/câu trả lời của riêng bạn mà cải thiện này? Tôi thích âm thanh của cách tiếp cận của bạn nhưng tôi không có đủ thông tin để kiểm tra nó. – insitusec