草稿如下,已经可以实现远程调试soong。明天在scratch环境上重做一遍,补充完整细节,再提交markdown文档。
@unicornx ,对于riscv64-android-12.0.0_dev_cn代码中的prebuilts/go/linux-x86目录下的go版本太过老旧,如何替换解决,有没有什么建议?我也可以去找找有没有什么设置可以让build时默认选择系统路径下的高版本go。
@unicornx ,另外文档结构及内容展示,有没有什么建议?
如何搭建soong的基于vscode的远程开发调试环境
注:提供此文档为方便国内参与小伙伴。
1. vscode的远程开发调试环境Server端建议为Ubuntu PC,环境如下:
本文所有操作在以下系统环境下验证通过
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic
Client端运行vscode IDE可以自选PC系统环境,Windows、Linux皆可。
2. 安装依赖软件Server端:
$ sudo apt install openssh-server
$ wget https://go.dev/dl/go1.18rc1.linux-amd64.tar.gz && rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18rc1.linux-amd64.tar.gz
$ export PATH=$PATH:/usr/local/go/bin
Client端:
安装vscode 1.64.2 或更高版本
启动vscode并安装vscode plugin Remote-SSH
通过vscode plugin Remote-SSH登录到Server端完成后:
1)这会将vscode-server程序自动安装到Server端的~/.vscode-server目录下
2)接着安装vscode plugin Go并且版本 >0.31
3)Ctrl+Shift+P,输入"Go: Install/Update Tools",再选择"dlv";如果该方法失败,可ssh到Server端后执行"go install github.com/go-delve/delve/cmd/dlv@1.8.1"
通过Client端运行的vscode远程访问Server端的AOSP代码目录并打开vscode terminal
在Client端的vscode terminal中先执行如下:
$ source build/envsetup.sh
$ SOONG_UI_DELVE=5006 m nothing
在"Run and Debug"中选择"Connect to server",再点击"Add Configuration"并添加如下Configuration
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Connect to server",
"type": "go",
"debugAdapter": "dlv-dap",
"request": "attach",
"mode": "remote",
"remotePath": "${workspaceFolder}",
"port": 5006,
"host": "192.168.50.248" // Server End IP
}
]
}
至此再"F5",即可开始远程调试soong。