| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[lldb][AIX] Added PlatformAIX plugin (#121273) This PR is in reference to porting LLDB on AIX. Link to discussions on llvm discourse and github: 1. https://discourse.llvm.org/t/port-lldb-to-ibm-aix/80640 2. https://github.com/llvm/llvm-project/issues/101657 The complete changes for porting are present in this draft PR: https://github.com/llvm/llvm-project/pull/102601 Details: -------------- Adding PlatformAIX plugin for a basic lldb build support. The 1st commit is the original version as in the draft PR which is a PlatformLinux copy. I have removed some of the code in the next commits. Please let me know all the other changes required to push the PlatformAIX changes and avoid any duplication. | 1 年前 | |
[lldb][Android] Fix platform process list regression (#164333) ## Summary Fix FindProcesses to respect Android's hidepid=2 security model and enable name matching for Android apps. ## Problem 1. Called adb shell pidof or adb shell ps directly, bypassing Android's process visibility restrictions 2. Name matching failed for Android apps - searched for com.example.myapp but GDB Remote Protocol reports app_process64 Android apps fork from Zygote, so /proc/PID/exe points to app_process64 for all apps. The actual package name is only in /proc/PID/cmdline. The previous implementation applied name filters without supplementing with cmdline, so searches failed. ## Fix - Delegate to lldb-server via GDB Remote Protocol (respects hidepid=2) - Get all visible processes, supplement zygote/app_process entries with cmdline, then apply name matching - Only fetch cmdline for zygote apps (performance), parallelize with xargs -P 8 - Remove redundant code (GDB Remote Protocol already provides GID/arch) ## Test Results ### Before this fix: (lldb) platform process list error: no processes were found on the "remote-android" platform (lldb) platform process list -n com.example.hellojni 1 matching process was found on "remote-android" PID PARENT USER TRIPLE NAME ====== ====== ========== ============================== ============================ 5276 359 u0_a192 com.example.hellojni ^^^^^^^^ Missing triple! ### After this fix: (lldb) platform process list PID PARENT USER TRIPLE NAME ====== ====== ========== ============================== ============================ 1 0 root aarch64-unknown-linux-android init 2 0 root [kthreadd] 359 1 system aarch64-unknown-linux-android app_process64 5276 359 u0_a192 aarch64-unknown-linux-android com.example.hellojni 5357 5355 u0_a192 aarch64-unknown-linux-android sh 5377 5370 u0_a192 aarch64-unknown-linux-android lldb-server ^^^^^^^^ User-space processes now have triples! (lldb) platform process list -n com.example.hellojni 1 matching process was found on "remote-android" PID PARENT USER TRIPLE NAME ====== ====== ========== ============================== ============================ 5276 359 u0_a192 aarch64-unknown-linux-android com.example.hellojni (lldb) process attach -n com.example.hellojni Process 5276 stopped * thread #1, name = 'example.hellojni', stop reason = signal SIGSTOP ## Test Plan With an Android device/emulator connected: 1. Start lldb-server on device: bash adb push lldb-server /data/local/tmp/ adb shell chmod +x /data/local/tmp/lldb-server adb shell /data/local/tmp/lldb-server platform --listen 127.0.0.1:9500 --server 2. Connect from LLDB: (lldb) platform select remote-android (lldb) platform connect connect://127.0.0.1:9500 (lldb) platform process list 3. Verify: - platform process list returns all processes with triple information - platform process list -n com.example.app finds Android apps by package name - process attach -n com.example.app successfully attaches to Android apps ## Impact Restores platform process list on Android with architecture information and package name lookup. All name matching modes now work correctly. Fixes https://github.com/llvm/llvm-project/issues/164192 | 9 个月前 | |
[lldb/cmake] Implicitly pass arguments to llvm_add_library (#142583) If we're not touching them, we don't need to do anything special to pass them along -- with one important caveat: due to how cmake arguments work, the implicitly passed arguments need to be specified before arguments that we handle. This isn't particularly nice, but the alternative is enumerating all arguments that can be used by llvm_add_library and the macros it calls (it also relies on implicit passing of some arguments to llvm_process_sources). | 1 年前 | |
[LLDB][Platform Linux] Flip uid and pid in get signal description (#142200) Despite a great review from @labath, I accidentally landed the signal with the UID and PID properties flipped. I was actually trying to write tests for this feature when I discovered it. This fixes that bug, and add a shell test that runs only on Nix systems. | 1 年前 | |
Reland "[clang] Refactor option-related code from clangDriver into new clangOptions library" (#167374) This relands #167348. The original PR was reverted due to a reported build failure, which was later diagnosed as a local issue in the developer’s checkout or build state. See discussion here: https://github.com/llvm/llvm-project/pull/163659#discussion_r2511546964 No additional changes have been made in this reland. | 9 个月前 | |
[clang][NFC] Refactor TagTypeKind (#71160) This patch converts TagTypeKind into scoped enum. Among other benefits, this allows us to forward-declare it where necessary. | 2 年前 | |
Revert "[lldb] Add Debugger & ScriptedMetadata reference to Platform::CreateInstance" This reverts commit 2d53527e9c64c70c24e1abba74fa0a8c8b3392b1. | 3 年前 | |
[lldb] Refactor UserExpression::Evaluate to only have one error channel. (#117186) Prior to this patch, the function returned an exit status, sometimes a ValueObject with an error and a Status object. This patch removes the Status object and ensures the error is consistently returned as the error of the ValueObject. | 1 年前 | |
[lldb/cmake] Implicitly pass arguments to llvm_add_library (#142583) If we're not touching them, we don't need to do anything special to pass them along -- with one important caveat: due to how cmake arguments work, the implicitly passed arguments need to be specified before arguments that we handle. This isn't particularly nice, but the alternative is enumerating all arguments that can be used by llvm_add_library and the macros it calls (it also relies on implicit passing of some arguments to llvm_process_sources). | 1 年前 | |
[lldb/cmake] Implicitly pass arguments to llvm_add_library (#142583) If we're not touching them, we don't need to do anything special to pass them along -- with one important caveat: due to how cmake arguments work, the implicitly passed arguments need to be specified before arguments that we handle. This isn't particularly nice, but the alternative is enumerating all arguments that can be used by llvm_add_library and the macros it calls (it also relies on implicit passing of some arguments to llvm_process_sources). | 1 年前 | |
Minor fix to connect-url to support unix-connect sockets on localhost (#142875) **Summary:** when the unix-socket connections on localhost are used to for platform connect i.e. platform connect unix-connect:///path/to/socket.sock then PlatformRemoteGDBServer.m_platform_hostname is empty. Based on the current logic, for the process attach, when the connection param returned by platform server as qLaunchGDBServer is this socket_name:/path/to/processgdbserver.sock then the subsequent connect url for the process url looks like this unix-connect://[]/path/to/processgdbserver.sock and the connection fail. This change is only adding the braces when the hostname is not empty. **Test Plan:** Added unittest and existing tests pass. satyajanga@devvm21837:toolchain $ LLDB_COMMAND_TRACE=YES ./bin/llvm-lit --verbose ~/llvm-sand/external/llvm-project/lldb/test/API/commands/platform -- Testing: 9 tests, 9 workers -- UNSUPPORTED: lldb-api :: commands/platform/sdk/TestPlatformSDK.py (1 of 9) PASS: lldb-api :: commands/platform/file/read/TestPlatformFileRead.py (2 of 9) PASS: lldb-api :: commands/platform/file/close/TestPlatformFileClose.py (3 of 9) PASS: lldb-api :: commands/platform/basic/TestPlatformPython.py (4 of 9) PASS: lldb-api :: commands/platform/basic/TestPlatformCommand.py (5 of 9) PASS: lldb-api :: commands/platform/process/launch/TestPlatformProcessLaunch.py (6 of 9) PASS: lldb-api :: commands/platform/connect/TestPlatformConnect.py (7 of 9) PASS: lldb-api :: commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py (8 of 9) PASS: lldb-api :: commands/platform/process/list/TestProcessList.py (9 of 9) Testing Time: 13.24s Total Discovered Tests: 9 Unsupported: 1 (11.11%) Passed : 8 (88.89%) satyajanga@devvm21837:toolchain $ Reviewers: @clayborg @Jlalond Subscribers: Tasks: Tags: | 1 年前 | |
| 1 年前 |