Author: Jacob Lalonde
Date: 2025-05-30T14:21:33-07:00
New Revision: 513c1cdfaaa3432dc4674a2d3be3dcaec2b4343e

URL: 
https://github.com/llvm/llvm-project/commit/513c1cdfaaa3432dc4674a2d3be3dcaec2b4343e
DIFF: 
https://github.com/llvm/llvm-project/commit/513c1cdfaaa3432dc4674a2d3be3dcaec2b4343e.diff

LOG: [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.

Added: 
    lldb/test/Shell/Register/Core/Inputs/tkill.cpp
    lldb/test/Shell/Register/Core/Inputs/x86-64-linux-tkill.core
    lldb/test/Shell/Register/Core/x86-64-linux-tkill.test

Modified: 
    lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp 
b/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
index 269105208a87a..da14da44f5939 100644
--- a/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
+++ b/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
@@ -580,7 +580,7 @@ static std::string 
GetDescriptionFromSiginfo(lldb::ValueObjectSP siginfo_sp) {
   }
 
   return linux_signals.GetSignalDescription(signo, code, addr, lower, upper,
-                                            uid, pid);
+                                            pid, uid);
 }
 
 lldb::StopInfoSP PlatformLinux::GetStopInfoFromSiginfo(Thread &thread) {

diff  --git a/lldb/test/Shell/Register/Core/Inputs/tkill.cpp 
b/lldb/test/Shell/Register/Core/Inputs/tkill.cpp
new file mode 100644
index 0000000000000..677bd3e6cf493
--- /dev/null
+++ b/lldb/test/Shell/Register/Core/Inputs/tkill.cpp
@@ -0,0 +1,10 @@
+#include <signal.h>
+#include <sys/syscall.h>
+
+int main() {
+  // Get the current thread ID
+  pid_t tid = syscall(SYS_gettid);
+  // Send a SIGSEGV signal to the current thread
+  syscall(SYS_tkill, tid, SIGSEGV);
+  return 0;
+}

diff  --git a/lldb/test/Shell/Register/Core/Inputs/x86-64-linux-tkill.core 
b/lldb/test/Shell/Register/Core/Inputs/x86-64-linux-tkill.core
new file mode 100644
index 0000000000000..3d1a05a34e7ca
Binary files /dev/null and 
b/lldb/test/Shell/Register/Core/Inputs/x86-64-linux-tkill.core 
diff er

diff  --git a/lldb/test/Shell/Register/Core/x86-64-linux-tkill.test 
b/lldb/test/Shell/Register/Core/x86-64-linux-tkill.test
new file mode 100644
index 0000000000000..64b99af2d83fa
--- /dev/null
+++ b/lldb/test/Shell/Register/Core/x86-64-linux-tkill.test
@@ -0,0 +1,5 @@
+# REQUIRES: system-linux
+# RUN: %lldb -b -s %s -c %p/Inputs/x86-64-linux-tkill.core | FileCheck %s
+
+thread list
+# CHECK: hread #1: tid = 2667987, 0x00007f9a265076cd, name = 'tkill.out', stop 
reason = SIGSEGV: sent by tkill system call (sender pid=2667987, uid=649752)


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to