1. Revert "fix" (details)
  2. [lldb-server/android] Show more processes by relaxing some checks (details)
Commit 1473b9f2052e99d79f52ad23f837561a55803702 by a20012251
Revert "fix"
This reverts commit d8af64c9a0228301f6fd0e1c841e4abe0b6f4801.
llvm-svn: 374852
The file was modifiedlldb/source/Host/linux/Host.cpp
Commit d04855f820c5f21c2ae95e711bf003af575e58e3 by a20012251
[lldb-server/android] Show more processes by relaxing some checks
By default `platform process list` only shows the processes of the
current user that lldb-server can parse. There are several problems:
- apk programs don't have an executable file. They instead use a package
name as identifier. We should show them instead.
- each apk also runs under a different user. That's how android works
- because of the user permission, some files like
/proc/<pid>/{environ,exe} can't be read.
This results in a very small process list.
This is a local run on my machine
(lldb) platform process list 2 matching processes were found on
"remote-android" PID    PARENT USER       TRIPLE                   NAME
====== ====== ========== ========================
============================ 23291  3177            
aarch64-unknown-linux-android sh 23301  23291          
aarch64-unknown-linux-android lldb-server
``` However, I have 700 processes running at this time.
By implementing a few fallbacks for android, I've expanded this list to
202, filtering out kernel processes, which would presumably appear in
this list if the device was rooted.
(lldb) platform process list 202 matching processes were found on
"remote-android" PID    PARENT USER       TRIPLE                   NAME
====== ====== ========== ========================
... 12647  3208              aarch64-unknown-linux-android sh 12649
12647             aarch64-unknown-linux-android lldb-server 12653  982 
                            13185  982
                             15899  982       
                      16220  982     
                                 com.sec.spp.push 17126  982           
                           com.sec.spp.push:RemoteDlcProcess 19772  983
                             20209  982    
                         20380  982       
20879  982                              21212  983                     
        24459  1               
aarch64-unknown-linux-android wpa_supplicant 25974  982                
             26293  982          
                   28714  982   
                          31605  982
                             32256  982                          
Something to notice is that the architecture is unkonwn for all apks.
And that's fine, because run-as would be required to gather this
information and that would make this entire functionality massively
There are still several improvements to make here, like displaying
actual user names, which I'll try to do in a following diff.
Note: Regarding overall apk debugging support from lldb. I'm planning on
having lldb spawn lldb-server by itself with the correct user, so that
everything works well. The initial lldb-server used for connecting to
the remote platform can be reused for such purpose. Furthermore,
eventually lldb could also launch that initial lldb-server on its own.
Differential Revision: D68289
llvm-svn: 374853
The file was modifiedlldb/source/Host/linux/Host.cpp