草稿如下,已经可以实现远程调试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"

3. 运行debug

通过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。