Tìm kiếm tương đương lldb của lệnh gdb "thư mục" để thêm đường dẫn tìm kiếm để tìm mã nguồn bị thiếu (hoặc có thể chức năng tương tự trong xcode)?LLDB tương đương với lệnh gdb "directory" để chỉ định đường dẫn tìm kiếm nguồn?
Cảm ơn trước!
Tìm kiếm tương đương lldb của lệnh gdb "thư mục" để thêm đường dẫn tìm kiếm để tìm mã nguồn bị thiếu (hoặc có thể chức năng tương tự trong xcode)?LLDB tương đương với lệnh gdb "directory" để chỉ định đường dẫn tìm kiếm nguồn?
Cảm ơn trước!
Cài đặt target.source-map
cho phép bạn xác định một loạt các sửa đổi đường dẫn a => b
trong phiên gỡ lỗi. Nó không giống với lệnh gdb dir, đây là danh sách các thư mục để tìm kiếm tệp nguồn theo tên cơ sở, nhưng bạn có thể giải quyết các vấn đề tương tự với source-map
. Dưới đây là ví dụ trong đó tôi chuyển tệp nguồn vào thư mục ẩn sau khi biên dịch:
% cd /tmp
% echo 'int main() { }' > a.c
% clang -g a.c
% mkdir hide
% mv a.c hide/
% xcrun lldb a.out
(lldb) settings set target.source-map /tmp /tmp/hide
(lldb) l -f a.c
1 int main() { }
(lldb) br se -n main
Breakpoint created: 1: name = 'main', locations = 1
(lldb) r
Process 21674 launched: '/private/tmp/a.out' (x86_64)
Process 21674 stopped
* thread #1: tid = 0x1f03, 0x0000000100000f49 a.out`main + 9 at a.c:1, stop reason = breakpoint 1.1
#0: 0x0000000100000f49 a.out`main + 9 at a.c:1
-> 1 int main() { }
(lldb)
Để biết thêm thông tin về cài đặt này, hãy nhập set list target.source-map
trong lldb. fwiw bạn có thể đã phát hiện ra điều này trong lldb bằng cách thực hiện apropos path
sẽ liệt kê tất cả các lệnh/cài đặt có từ đường dẫn trong tên/mô tả. Thấy rằng có một cài đặt bằng tên này, bạn sẽ làm settings list
để xem danh sách cài đặt và tìm hiểu rằng nó được lưu dưới target.
.
Jason, cảm ơn bạn đã làm rõ cách sử dụng và cung cấp ví dụ tự giải thích tốt! ("Một bức tranh trị giá một ngàn chữ" ;-) Hy vọng bạn không nhớ sử dụng ví dụ này như một gợi ý để cập nhật "GDB TO LLDB COMMAND MAP" (http://lldb.llvm.org/lldb-gdb. html)./Kính trọng, Lars. – IODEV
Vâng, vấn đề duy nhất là target.source-map không thực sự giống như dir; nó tương đương với cài đặt thay thế tên đường dẫn của gdb. thay thế tên đường dẫn đã được sử dụng bởi Xcode đằng sau hậu trường nhưng người dùng thường không nhận thức được nó. Chúng ta sẽ cần thêm một lệnh tương tự lệnh dir của gdb vào lldb tại một số điểm. –
Về điều duy nhất tôi bỏ lỡ từ câu trả lời này, sẽ là làm thế nào để tìm đường dẫn nguồn được sử dụng khi xây dựng nó. Nếu tôi kết nối với máy từ xa, tôi thường không biết đường dẫn nào được sử dụng, tôi hy vọng có thể yêu cầu lldb chỉ cho tôi đường dẫn muốn tìm các tệp nguồn, vì vậy tôi có thể ánh xạ chính xác nó. – lundman