Trang này trình bày chi tiết về cách sử dụng LLDB để phát triển hệ điều hành. Để phát triển ứng dụng, hãy xem Gỡ lỗi ứng dụng của bạn để giải thích cách sử dụng GUI của Android Studio (dựa trên LLDB).
GDB không còn được hỗ trợ hoặc cung cấp nữa. Nếu bạn đang chuyển từ GDB sang LLDB, có lẽ bạn nên bắt đầu bằng cách đọc Hướng dẫn LLDB . Nếu bạn là người dùng GDB chuyên nghiệp, bản đồ lệnh GDB sang LLDB rất hữu ích khi chuyển đổi.
Điều kiện tiên quyết
Để sử dụng trình gỡ lỗi:
- Thiết lập môi trường xây dựng bằng lệnh
envsetup.sh
thông thường. - Chạy lệnh
lunch
giống như bạn đã sử dụng khi xây dựng. Lưu ý rằng món ăn trưa phải khớp chính xác với thiết bị bạn đang gỡ lỗi. Nếu món ăn trưa không khớp với thiết bị đi kèm, bạn sẽ gặp lỗi dạng:You used the wrong lunch: TARGET_PRODUCT (aosp_arm64) does not match attached device (xyzabc)
- Kết nối thiết bị của bạn với máy.
Để được trợ giúp thêm về việc thiết lập môi trường của bạn, hãy xem Thiết lập môi trường .
Gỡ lỗi nhị phân
Để gỡ lỗi tệp nhị phân mà bạn đã tạo trên máy của mình, trước tiên, bạn phải sao chép tệp nhị phân vào thiết bị rồi khởi chạy trình gỡ lỗi. Ví dụ:
adb push test.exe /data/local/tmp/test.exe
lldbclient.py --port 5038 -r /data/local/tmp/test.exe
Gỡ lỗi các ứng dụng hoặc tiến trình đang chạy
Để kết nối với một ứng dụng đang chạy hoặc daemon gốc, hãy sử dụng lldbclient.py
với PID. Ví dụ: để gỡ lỗi quy trình với PID 1234, hãy chạy quy trình này trên máy chủ:
lldbclient.py -p 1234
Tập lệnh thiết lập chuyển tiếp cổng, khởi động sơ khai gỡ lỗi từ xa thích hợp trên thiết bị, khởi động trình gỡ lỗi trên máy chủ, định cấu hình nó để tìm các biểu tượng và kết nối nó với sơ khai gỡ lỗi từ xa.
Gỡ lỗi khởi động quy trình gốc
Để gỡ lỗi một quá trình khi nó bắt đầu, hãy sử dụng lldbclient.py
với tùy chọn -r
. Ví dụ: để gỡ lỗi ls /bin
, hãy chạy cái này trên Máy chủ:
lldbclient.py -r /system/bin/ls /bin
Sau đó, nhập continue
tại dấu nhắc của trình gỡ lỗi.
Gỡ lỗi khởi động ứng dụng
Đôi khi bạn muốn gỡ lỗi một ứng dụng khi nó khởi động, chẳng hạn như khi xảy ra sự cố và bạn muốn duyệt qua mã để xem điều gì đã xảy ra trước sự cố. Việc đính kèm có hiệu quả trong một số trường hợp, nhưng trong những trường hợp khác là không thể thực hiện được do ứng dụng gặp sự cố trước khi bạn có thể đính kèm. Cách tiếp cận logwrapper
(được sử dụng cho strace
) không phải lúc nào cũng hoạt động vì ứng dụng có thể không có quyền mở cổng và lldbserver
kế thừa hạn chế đó.
Để gỡ lỗi khi khởi động ứng dụng, hãy sử dụng tùy chọn nhà phát triển trong Cài đặt để hướng dẫn ứng dụng đợi trình gỡ lỗi Java đính kèm:
- Đi tới Cài đặt > Tùy chọn nhà phát triển > Chọn ứng dụng gỡ lỗi và chọn ứng dụng của bạn từ danh sách, sau đó nhấp vào Chờ trình gỡ lỗi .
- Khởi động ứng dụng từ trình khởi chạy hoặc bằng cách sử dụng dòng lệnh để chạy:
adb shell am start -a android.intent.action.MAIN -n APP_NAME/.APP_ACTIVITY
- Đợi ứng dụng tải và hộp thoại xuất hiện cho bạn biết ứng dụng đang chờ trình gỡ lỗi.
- Đính kèm
lldbserver
/lldbclient
bình thường, đặt điểm dừng, sau đó tiếp tục quá trình.
Để cho phép ứng dụng chạy, hãy đính kèm trình gỡ lỗi Giao thức dây gỡ lỗi Java (JDWP), chẳng hạn như Trình gỡ lỗi Java (jdb):
adb forward tcp:12345 jdwp:XXX # (Where XXX is the PID of the debugged process.)
jdb -attach localhost:12345
Gỡ lỗi ứng dụng hoặc quy trình bị lỗi
Nếu bạn muốn debuggerd
tạm dừng các quy trình bị lỗi để bạn có thể đính kèm trình gỡ lỗi, hãy đặt thuộc tính thích hợp:
- Sau Android 11
adb shell setprop debug.debuggerd.wait_for_debugger true
- Android 11 trở xuống
adb shell setprop debug.debuggerd.wait_for_gdb true
- Android 6.0 Marshmallow trở xuống
adb shell setprop debug.db.uid 999999
Ở cuối đầu ra sự cố thông thường, debuggerd
cung cấp hướng dẫn sao chép và dán trong logcat cho biết cách kết nối trình gỡ lỗi với quy trình bị lỗi.
Gỡ lỗi bằng mã VS
LLDB hỗ trợ gỡ lỗi mã nền tảng trên Visual Studio Code . Bạn có thể sử dụng giao diện người gỡ lỗi VS Code thay vì giao diện LLDB CLI để kiểm soát và gỡ lỗi mã gốc chạy trên thiết bị.
Trước khi sử dụng VS Code để gỡ lỗi, hãy cài đặt tiện ích mở rộng CodeLLDB .
Để gỡ lỗi mã bằng Mã VS:
- Đảm bảo rằng tất cả các tạo phẩm xây dựng (chẳng hạn như ký hiệu) cần thiết để chạy
lldbclient.py
hoặclldbclient.py
đều có mặt. - Trong Mã VS, nhấn Ctrl+Shift+P để chạy lệnh, tìm kiếm Debug: Add Configuration... , sau đó chọn LLDB . Thao tác này sẽ mở tệp
launch.json
và thêm đối tượng JSON mới vào danh sách. - Thay thế cấu hình trình gỡ lỗi mới được thêm bằng hai dòng nhận xét -
// #lldbclient-generated-begin
và// #lldbclient-generated-end
, để danh sách cấu hình của bạn trông như thế này:"configurations": [ // #lldbclient-generated-begin // #lldbclient-generated-end ]
lldbclient.py
sử dụng những nhận xét này để phát hiện vị trí ghi cấu hình. Nếu có các mục khác trong danh sách, hãy thêm dòng chú thích vào cuối sau các cấu hình khác. - Chạy lệnh sau trong thiết bị đầu cuối nơi bạn đã chạy
envsetup.sh
vàlunch
:lldbclient.py --setup-forwarding vscode-lldb \ --vscode-launch-file LAUNCH_JSON_PATH \ ANY_OTHER_FLAGS -p pid | -n proc-name | -r ...
lldbclient.py
ghi cấu hình đã tạo vàolaunch.json
và tiếp tục chạy. Điều này được mong đợi; đừng tắt chương trìnhlldbclient.py
. Nếu bạn bỏ qua--vscode-launch-file
tập lệnh sẽ in đoạn mã JSON mà bạn cần sao chép và dán vàolaunch.json
theo cách thủ công.Cờ
-r
phải là cờ cuối cùng nếu nó xuất hiện do cách công cụ phân tích cú pháp cờ. - Mở thanh bên Chạy và Gỡ lỗi - cấu hình mới sẽ xuất hiện trong danh sách trình gỡ lỗi. Nhấn Bắt đầu gỡ lỗi (F5) . Trình gỡ lỗi sẽ kết nối sau 10 đến 30 giây.
Nếu cấu hình mới không xuất hiện trong chế độ xem Chạy và Gỡ lỗi, hãy tải lại cửa sổ để làm mới danh sách trình gỡ lỗi - nhấn Ctrl+Shift+P và nhập
reload window
. - Khi bạn gỡ lỗi xong, hãy đi tới thiết bị đầu cuối đang chạy
lldbclient.py
và nhấn Enter để kết thúc chương trìnhlldbclient.py
. Các lần chạy tập lệnh tiếp theo sẽ tạo cấu hình giữa các nhận xét#lldbclient-generated
và thay thế nội dung cũ, bạn không cần phải xóa chúng theo cách thủ công.
Để thêm thuộc tính tùy chỉnh vào cấu hình khởi chạy đã tạo, bạn có thể sử dụng cờ --vscode-launch-props
. Ví dụ:
lldbclient.py --setup-forwarding vscode-lldb \
--vscode-launch-props \
'{"initCommands" : ["script print(\"Hello\")"], "preLaunchTask" : "Build"}' \
...
Các thuộc tính mẫu sẽ làm cho VS Code chạy một tác vụ có tên Build
trước khi gỡ lỗi và nối thêm bước khởi tạo gỡ lỗi mới vào các bước do tập lệnh tạo ra. Bạn có thể tìm thấy thông tin tổng quan về các thuộc tính có sẵn trong tài liệu VS Code và trong Hướng dẫn sử dụng của tiện ích mở rộng CodeLLDB . , Trang này trình bày chi tiết về cách sử dụng LLDB để phát triển hệ điều hành. Để phát triển ứng dụng, hãy xem Gỡ lỗi ứng dụng của bạn để giải thích cách sử dụng GUI của Android Studio (dựa trên LLDB).
GDB không còn được hỗ trợ hoặc cung cấp nữa. Nếu bạn đang chuyển từ GDB sang LLDB, có lẽ bạn nên bắt đầu bằng cách đọc Hướng dẫn LLDB . Nếu bạn là người dùng GDB chuyên nghiệp, bản đồ lệnh GDB sang LLDB rất hữu ích khi chuyển đổi.
Điều kiện tiên quyết
Để sử dụng trình gỡ lỗi:
- Thiết lập môi trường xây dựng bằng lệnh
envsetup.sh
thông thường. - Chạy lệnh
lunch
giống như bạn đã sử dụng khi xây dựng. Lưu ý rằng món ăn trưa phải khớp chính xác với thiết bị bạn đang gỡ lỗi. Nếu món ăn trưa không khớp với thiết bị đi kèm, bạn sẽ gặp lỗi dạng:You used the wrong lunch: TARGET_PRODUCT (aosp_arm64) does not match attached device (xyzabc)
- Kết nối thiết bị của bạn với máy.
Để được trợ giúp thêm về việc thiết lập môi trường của bạn, hãy xem Thiết lập môi trường .
Gỡ lỗi nhị phân
Để gỡ lỗi tệp nhị phân mà bạn đã tạo trên máy của mình, trước tiên, bạn phải sao chép tệp nhị phân vào thiết bị rồi khởi chạy trình gỡ lỗi. Ví dụ:
adb push test.exe /data/local/tmp/test.exe
lldbclient.py --port 5038 -r /data/local/tmp/test.exe
Gỡ lỗi các ứng dụng hoặc tiến trình đang chạy
Để kết nối với một ứng dụng đang chạy hoặc daemon gốc, hãy sử dụng lldbclient.py
với PID. Ví dụ: để gỡ lỗi quy trình với PID 1234, hãy chạy quy trình này trên máy chủ:
lldbclient.py -p 1234
Tập lệnh thiết lập chuyển tiếp cổng, khởi động sơ khai gỡ lỗi từ xa thích hợp trên thiết bị, khởi động trình gỡ lỗi trên máy chủ, định cấu hình nó để tìm các biểu tượng và kết nối nó với sơ khai gỡ lỗi từ xa.
Gỡ lỗi khởi động quy trình gốc
Để gỡ lỗi một quá trình khi nó bắt đầu, hãy sử dụng lldbclient.py
với tùy chọn -r
. Ví dụ: để gỡ lỗi ls /bin
, hãy chạy cái này trên Máy chủ:
lldbclient.py -r /system/bin/ls /bin
Sau đó, nhập continue
tại dấu nhắc của trình gỡ lỗi.
Gỡ lỗi khởi động ứng dụng
Đôi khi bạn muốn gỡ lỗi một ứng dụng khi nó khởi động, chẳng hạn như khi xảy ra sự cố và bạn muốn duyệt qua mã để xem điều gì đã xảy ra trước sự cố. Việc đính kèm có hiệu quả trong một số trường hợp, nhưng trong những trường hợp khác là không thể thực hiện được do ứng dụng gặp sự cố trước khi bạn có thể đính kèm. Cách tiếp cận logwrapper
(được sử dụng cho strace
) không phải lúc nào cũng hoạt động vì ứng dụng có thể không có quyền mở cổng và lldbserver
kế thừa hạn chế đó.
Để gỡ lỗi khi khởi động ứng dụng, hãy sử dụng tùy chọn nhà phát triển trong Cài đặt để hướng dẫn ứng dụng đợi trình gỡ lỗi Java đính kèm:
- Đi tới Cài đặt > Tùy chọn nhà phát triển > Chọn ứng dụng gỡ lỗi và chọn ứng dụng của bạn từ danh sách, sau đó nhấp vào Chờ trình gỡ lỗi .
- Khởi động ứng dụng từ trình khởi chạy hoặc bằng cách sử dụng dòng lệnh để chạy:
adb shell am start -a android.intent.action.MAIN -n APP_NAME/.APP_ACTIVITY
- Đợi ứng dụng tải và hộp thoại xuất hiện cho bạn biết ứng dụng đang chờ trình gỡ lỗi.
- Đính kèm
lldbserver
/lldbclient
bình thường, đặt điểm dừng, sau đó tiếp tục quá trình.
Để cho phép ứng dụng chạy, hãy đính kèm trình gỡ lỗi Giao thức dây gỡ lỗi Java (JDWP), chẳng hạn như Trình gỡ lỗi Java (jdb):
adb forward tcp:12345 jdwp:XXX # (Where XXX is the PID of the debugged process.)
jdb -attach localhost:12345
Gỡ lỗi ứng dụng hoặc quy trình bị lỗi
Nếu bạn muốn debuggerd
tạm dừng các quy trình bị lỗi để bạn có thể đính kèm trình gỡ lỗi, hãy đặt thuộc tính thích hợp:
- Sau Android 11
adb shell setprop debug.debuggerd.wait_for_debugger true
- Android 11 trở xuống
adb shell setprop debug.debuggerd.wait_for_gdb true
- Android 6.0 Marshmallow trở xuống
adb shell setprop debug.db.uid 999999
Ở cuối đầu ra sự cố thông thường, debuggerd
cung cấp hướng dẫn sao chép và dán trong logcat cho biết cách kết nối trình gỡ lỗi với quy trình bị lỗi.
Gỡ lỗi bằng mã VS
LLDB hỗ trợ gỡ lỗi mã nền tảng trên Visual Studio Code . Bạn có thể sử dụng giao diện người gỡ lỗi VS Code thay vì giao diện LLDB CLI để kiểm soát và gỡ lỗi mã gốc chạy trên thiết bị.
Trước khi sử dụng VS Code để gỡ lỗi, hãy cài đặt tiện ích mở rộng CodeLLDB .
Để gỡ lỗi mã bằng Mã VS:
- Đảm bảo rằng tất cả các tạo phẩm xây dựng (chẳng hạn như ký hiệu) cần thiết để chạy
lldbclient.py
hoặclldbclient.py
đều có mặt. - Trong Mã VS, nhấn Ctrl+Shift+P để chạy lệnh, tìm kiếm Debug: Add Configuration... , sau đó chọn LLDB . Thao tác này sẽ mở tệp
launch.json
và thêm đối tượng JSON mới vào danh sách. - Thay thế cấu hình trình gỡ lỗi mới được thêm bằng hai dòng nhận xét -
// #lldbclient-generated-begin
và// #lldbclient-generated-end
, để danh sách cấu hình của bạn trông như thế này:"configurations": [ // #lldbclient-generated-begin // #lldbclient-generated-end ]
lldbclient.py
sử dụng những nhận xét này để phát hiện vị trí ghi cấu hình. Nếu có các mục khác trong danh sách, hãy thêm dòng chú thích vào cuối sau các cấu hình khác. - Chạy lệnh sau trong thiết bị đầu cuối nơi bạn đã chạy
envsetup.sh
vàlunch
:lldbclient.py --setup-forwarding vscode-lldb \ --vscode-launch-file LAUNCH_JSON_PATH \ ANY_OTHER_FLAGS -p pid | -n proc-name | -r ...
lldbclient.py
ghi cấu hình đã tạo vàolaunch.json
và tiếp tục chạy. Điều này được mong đợi; đừng tắt chương trìnhlldbclient.py
. Nếu bạn bỏ qua--vscode-launch-file
tập lệnh sẽ in đoạn mã JSON mà bạn cần sao chép và dán vàolaunch.json
theo cách thủ công.Cờ
-r
phải là cờ cuối cùng nếu nó xuất hiện do cách công cụ phân tích cú pháp cờ. - Mở thanh bên Chạy và Gỡ lỗi - cấu hình mới sẽ xuất hiện trong danh sách trình gỡ lỗi. Nhấn Bắt đầu gỡ lỗi (F5) . Trình gỡ lỗi sẽ kết nối sau 10 đến 30 giây.
Nếu cấu hình mới không xuất hiện trong chế độ xem Chạy và Gỡ lỗi, hãy tải lại cửa sổ để làm mới danh sách trình gỡ lỗi - nhấn Ctrl+Shift+P và nhập
reload window
. - Khi bạn gỡ lỗi xong, hãy đi tới thiết bị đầu cuối đang chạy
lldbclient.py
và nhấn Enter để kết thúc chương trìnhlldbclient.py
. Các lần chạy tập lệnh tiếp theo sẽ tạo cấu hình giữa các nhận xét#lldbclient-generated
và thay thế nội dung cũ, bạn không cần phải xóa chúng theo cách thủ công.
Để thêm thuộc tính tùy chỉnh vào cấu hình khởi chạy đã tạo, bạn có thể sử dụng cờ --vscode-launch-props
. Ví dụ:
lldbclient.py --setup-forwarding vscode-lldb \
--vscode-launch-props \
'{"initCommands" : ["script print(\"Hello\")"], "preLaunchTask" : "Build"}' \
...
Các thuộc tính mẫu sẽ làm cho VS Code chạy một tác vụ có tên Build
trước khi gỡ lỗi và nối thêm bước khởi tạo gỡ lỗi mới vào các bước do tập lệnh tạo ra. Bạn có thể tìm thấy thông tin tổng quan về các thuộc tính có sẵn trong tài liệu VS Code và trong Hướng dẫn sử dụng của tiện ích mở rộng CodeLLDB . , Trang này trình bày chi tiết về cách sử dụng LLDB để phát triển hệ điều hành. Để phát triển ứng dụng, hãy xem Gỡ lỗi ứng dụng của bạn để giải thích cách sử dụng GUI của Android Studio (dựa trên LLDB).
GDB không còn được hỗ trợ hoặc cung cấp nữa. Nếu bạn đang chuyển từ GDB sang LLDB, có lẽ bạn nên bắt đầu bằng cách đọc Hướng dẫn LLDB . Nếu bạn là người dùng GDB chuyên nghiệp, bản đồ lệnh GDB sang LLDB rất hữu ích khi chuyển đổi.
Điều kiện tiên quyết
Để sử dụng trình gỡ lỗi:
- Thiết lập môi trường xây dựng bằng lệnh
envsetup.sh
thông thường. - Chạy lệnh
lunch
giống như bạn đã sử dụng khi xây dựng. Lưu ý rằng món ăn trưa phải khớp chính xác với thiết bị bạn đang gỡ lỗi. Nếu món ăn trưa không khớp với thiết bị đi kèm, bạn sẽ gặp lỗi dạng:You used the wrong lunch: TARGET_PRODUCT (aosp_arm64) does not match attached device (xyzabc)
- Kết nối thiết bị của bạn với máy.
Để được trợ giúp thêm về việc thiết lập môi trường của bạn, hãy xem Thiết lập môi trường .
Gỡ lỗi nhị phân
Để gỡ lỗi tệp nhị phân mà bạn đã tạo trên máy của mình, trước tiên, bạn phải sao chép tệp nhị phân vào thiết bị rồi khởi chạy trình gỡ lỗi. Ví dụ:
adb push test.exe /data/local/tmp/test.exe
lldbclient.py --port 5038 -r /data/local/tmp/test.exe
Gỡ lỗi các ứng dụng hoặc tiến trình đang chạy
Để kết nối với một ứng dụng đang chạy hoặc daemon gốc, hãy sử dụng lldbclient.py
với PID. Ví dụ: để gỡ lỗi quy trình với PID 1234, hãy chạy quy trình này trên máy chủ:
lldbclient.py -p 1234
Tập lệnh thiết lập chuyển tiếp cổng, khởi động sơ khai gỡ lỗi từ xa thích hợp trên thiết bị, khởi động trình gỡ lỗi trên máy chủ, định cấu hình nó để tìm các biểu tượng và kết nối nó với sơ khai gỡ lỗi từ xa.
Gỡ lỗi khởi động quy trình gốc
Để gỡ lỗi một quá trình khi nó bắt đầu, hãy sử dụng lldbclient.py
với tùy chọn -r
. Ví dụ: để gỡ lỗi ls /bin
, hãy chạy cái này trên Máy chủ:
lldbclient.py -r /system/bin/ls /bin
Sau đó, nhập continue
tại dấu nhắc của trình gỡ lỗi.
Gỡ lỗi khởi động ứng dụng
Đôi khi bạn muốn gỡ lỗi một ứng dụng khi nó khởi động, chẳng hạn như khi xảy ra sự cố và bạn muốn duyệt qua mã để xem điều gì đã xảy ra trước sự cố. Việc đính kèm có hiệu quả trong một số trường hợp, nhưng trong những trường hợp khác là không thể thực hiện được do ứng dụng gặp sự cố trước khi bạn có thể đính kèm. Cách tiếp cận logwrapper
(được sử dụng cho strace
) không phải lúc nào cũng hoạt động vì ứng dụng có thể không có quyền mở cổng và lldbserver
kế thừa hạn chế đó.
Để gỡ lỗi khi khởi động ứng dụng, hãy sử dụng tùy chọn nhà phát triển trong Cài đặt để hướng dẫn ứng dụng đợi trình gỡ lỗi Java đính kèm:
- Đi tới Cài đặt > Tùy chọn nhà phát triển > Chọn ứng dụng gỡ lỗi và chọn ứng dụng của bạn từ danh sách, sau đó nhấp vào Chờ trình gỡ lỗi .
- Khởi động ứng dụng từ trình khởi chạy hoặc bằng cách sử dụng dòng lệnh để chạy:
adb shell am start -a android.intent.action.MAIN -n APP_NAME/.APP_ACTIVITY
- Đợi ứng dụng tải và hộp thoại xuất hiện cho bạn biết ứng dụng đang chờ trình gỡ lỗi.
- Đính kèm
lldbserver
/lldbclient
bình thường, đặt điểm ngắt, sau đó tiếp tục quá trình.
Để cho phép ứng dụng chạy, hãy đính kèm trình gỡ lỗi Giao thức dây gỡ lỗi Java (JDWP), chẳng hạn như Trình gỡ lỗi Java (jdb):
adb forward tcp:12345 jdwp:XXX # (Where XXX is the PID of the debugged process.)
jdb -attach localhost:12345
Gỡ lỗi ứng dụng hoặc quy trình bị lỗi
Nếu bạn muốn debuggerd
tạm dừng các quy trình bị lỗi để bạn có thể đính kèm trình gỡ lỗi, hãy đặt thuộc tính thích hợp:
- Sau Android 11
adb shell setprop debug.debuggerd.wait_for_debugger true
- Android 11 trở xuống
adb shell setprop debug.debuggerd.wait_for_gdb true
- Android 6.0 Marshmallow trở xuống
adb shell setprop debug.db.uid 999999
Ở cuối đầu ra sự cố thông thường, debuggerd
cung cấp hướng dẫn sao chép và dán trong logcat cho biết cách kết nối trình gỡ lỗi với quy trình bị lỗi.
Gỡ lỗi bằng mã VS
LLDB hỗ trợ gỡ lỗi mã nền tảng trên Visual Studio Code . Bạn có thể sử dụng giao diện người gỡ lỗi VS Code thay vì giao diện LLDB CLI để kiểm soát và gỡ lỗi mã gốc chạy trên thiết bị.
Trước khi sử dụng VS Code để gỡ lỗi, hãy cài đặt tiện ích mở rộng CodeLLDB .
Để gỡ lỗi mã bằng Mã VS:
- Đảm bảo rằng tất cả các tạo phẩm xây dựng (chẳng hạn như ký hiệu) cần thiết để chạy
lldbclient.py
hoặclldbclient.py
đều có mặt. - Trong Mã VS, nhấn Ctrl+Shift+P để chạy lệnh, tìm kiếm Debug: Add Configuration... , sau đó chọn LLDB . Thao tác này sẽ mở tệp
launch.json
và thêm đối tượng JSON mới vào danh sách. - Thay thế cấu hình trình gỡ lỗi mới được thêm bằng hai dòng nhận xét -
// #lldbclient-generated-begin
và// #lldbclient-generated-end
, để danh sách cấu hình của bạn trông như thế này:"configurations": [ // #lldbclient-generated-begin // #lldbclient-generated-end ]
lldbclient.py
sử dụng những nhận xét này để phát hiện vị trí ghi cấu hình. Nếu có các mục khác trong danh sách, hãy thêm dòng chú thích vào cuối sau các cấu hình khác. - Chạy lệnh sau trong thiết bị đầu cuối nơi bạn đã chạy
envsetup.sh
vàlunch
:lldbclient.py --setup-forwarding vscode-lldb \ --vscode-launch-file LAUNCH_JSON_PATH \ ANY_OTHER_FLAGS -p pid | -n proc-name | -r ...
lldbclient.py
ghi cấu hình đã tạo vàolaunch.json
và tiếp tục chạy. Điều này được mong đợi; đừng tắt chương trìnhlldbclient.py
. Nếu bạn bỏ qua--vscode-launch-file
tập lệnh sẽ in đoạn mã JSON mà bạn cần sao chép và dán vàolaunch.json
theo cách thủ công.Cờ
-r
phải là cờ cuối cùng nếu nó xuất hiện do cách công cụ phân tích cú pháp cờ. - Mở thanh bên Chạy và Gỡ lỗi - cấu hình mới sẽ xuất hiện trong danh sách trình gỡ lỗi. Nhấn Bắt đầu gỡ lỗi (F5) . Trình gỡ lỗi sẽ kết nối sau 10 đến 30 giây.
Nếu cấu hình mới không xuất hiện trong chế độ xem Chạy và Gỡ lỗi, hãy tải lại cửa sổ để làm mới danh sách trình gỡ lỗi - nhấn Ctrl+Shift+P và nhập
reload window
. - Khi bạn gỡ lỗi xong, hãy đi tới thiết bị đầu cuối đang chạy
lldbclient.py
và nhấn Enter để kết thúc chương trìnhlldbclient.py
. Các lần chạy tập lệnh tiếp theo sẽ tạo cấu hình giữa các nhận xét#lldbclient-generated
và thay thế nội dung cũ, bạn không cần phải xóa chúng theo cách thủ công.
Để thêm thuộc tính tùy chỉnh vào cấu hình khởi chạy đã tạo, bạn có thể sử dụng cờ --vscode-launch-props
. Ví dụ:
lldbclient.py --setup-forwarding vscode-lldb \
--vscode-launch-props \
'{"initCommands" : ["script print(\"Hello\")"], "preLaunchTask" : "Build"}' \
...
Các thuộc tính mẫu sẽ làm cho VS Code chạy một tác vụ có tên Build
trước khi gỡ lỗi và nối thêm bước khởi tạo gỡ lỗi mới vào các bước do tập lệnh tạo ra. Bạn có thể tìm thấy thông tin tổng quan về các thuộc tính có sẵn trong tài liệu VS Code và trong Hướng dẫn sử dụng của tiện ích mở rộng CodeLLDB .