[Lldb-commits] [lldb] r220660 - Fix TestProcessAttach for Linux ptracer lock-down and llgs-local.

Todd Fiala todd.fiala at gmail.com
Sun Oct 26 17:31:06 PDT 2014


Author: tfiala
Date: Sun Oct 26 19:31:05 2014
New Revision: 220660

URL: http://llvm.org/viewvc/llvm-project?rev=220660&view=rev
Log:
Fix TestProcessAttach for Linux ptracer lock-down and llgs-local.

Modified:
    lldb/trunk/test/functionalities/process_attach/main.c

Modified: lldb/trunk/test/functionalities/process_attach/main.c
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/process_attach/main.c?rev=220660&r1=220659&r2=220660&view=diff
==============================================================================
--- lldb/trunk/test/functionalities/process_attach/main.c (original)
+++ lldb/trunk/test/functionalities/process_attach/main.c Sun Oct 26 19:31:05 2014
@@ -1,9 +1,30 @@
 #include <stdio.h>
 #include <unistd.h>
 
+#if defined(__linux__)
+#include <sys/prctl.h>
+#endif
+
 int main(int argc, char const *argv[]) {
+    int temp;
+#if defined(__linux__)
+    // Immediately enable any ptracer so that we can allow the stub attach
+    // operation to succeed.  Some Linux kernels are locked down so that
+    // only an ancestor process can be a ptracer of a process.  This disables that
+    // restriction.  Without it, attach-related stub tests will fail.
+#if defined(PR_SET_PTRACER) && defined(PR_SET_PTRACER_ANY)
+    int prctl_result;
+
+    // For now we execute on best effort basis.  If this fails for
+    // some reason, so be it.
+    prctl_result = prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0);
+    (void) prctl_result;
+#endif
+#endif
+
     // Waiting to be attached by the debugger.
-    int temp = 0;
+    temp = 0;
+
     while (temp < 30) // Waiting to be attached...
     {
         sleep(1);





More information about the lldb-commits mailing list