[Lldb-commits] [lldb] [lldb] make PlatformAndroid/AdbClient::GetSyncService threadsafe (PR #145382)
Chad Smith via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 9 22:00:00 PDT 2025
cs01 wrote:
I added some logs to better understand and debug what's going on. Here are some results from my testing.
In lldb, turn on logs
```
(lldb) log enable -f /tmp/lldb.log lldb platform
```
then open /tmp/lldb.log:
```
lldb-dap PlatformAndroid::CreateInstance(force=true, arch={<null>,<null>})
lldb-dap PlatformAndroid::CreateInstance() creating remote-android platform
lldb-dap AdbClient::AdbClient() - Creating AdbClient with default constructor
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap Connected to Android device "127.0.0.1:15558"
lldb-dap Forwarding remote TCP port 46403 to local TCP port 48341
lldb-dap AdbClient::~AdbClient() - Destroying AdbClient for device: 127.0.0.1:15558
lldb-dap Rewritten platform connect URL: connect://127.0.0.1:48341
lldb-dap AdbClient::AdbClient() - Creating AdbClient with default constructor
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap AdbClient::~AdbClient() - Destroying AdbClient for device: 127.0.0.1:15558
lldb-dap AdbClient::AdbClient(device_id='127.0.0.1:15558') - Creating AdbClient with device ID
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap Selecting device: 127.0.0.1:15558
lldb-dap AdbClient::~AdbClient() - Destroying AdbClient for device: 127.0.0.1:15558
lldb-dap PlatformRemoteGDBServer::GetRemoteWorkingDirectory() -> '/'
lldb-dap AdbClient::AdbClient() - Creating AdbClient with default constructor
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap Connected to Android device "127.0.0.1:15558"
lldb-dap Forwarding remote TCP port 34309 to local TCP port 33451
lldb-dap AdbClient::~AdbClient() - Destroying AdbClient for device: 127.0.0.1:15558
lldb-dap gdbserver connect URL: connect://127.0.0.1:33451
```
In lldb, get a file to confirm the sync service works:
```
platform get-file /system/build.prop /tmp/build.prop
```
shows
```
lldb-dap AdbSyncService::AdbSyncService() - Creating AdbSyncService for device: 127.0.0.1:15558
lldb-dap Connecting to ADB server at connect://127.0.0.1:5037
lldb-dap Selecting device: 127.0.0.1:15558
lldb-dap AdbSyncService::~AdbSyncService() - Destroying AdbSyncService for device: 127.0.0.1:15558
```
I also added an implementation for `PlatformAndroid::FindProcesses`. Previously it was defaulting to the Linux implementation, which made process attach by name (e.g. `process attach --name com.android.settings`) fail on android with `attach failed: could not find a process named com.android.settings`. This PR is already quite big so if you want me to move it to another one just lmk and I'm happy to do that.
https://github.com/llvm/llvm-project/pull/145382
More information about the lldb-commits
mailing list