Index: test/tools/lldb-gdbserver/main.cpp =================================================================== --- test/tools/lldb-gdbserver/main.cpp +++ test/tools/lldb-gdbserver/main.cpp @@ -20,6 +20,10 @@ #include #endif +#if defined(__linux__) +#include +#endif + static const char *const RETVAL_PREFIX = "retval:"; static const char *const SLEEP_PREFIX = "sleep:"; static const char *const STDERR_PREFIX = "stderr:"; @@ -206,6 +210,17 @@ int main (int argc, char **argv) { +#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 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) + const int prctl_result = prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); + static_cast (prctl_result); +#endif +#endif + std::vector threads; std::unique_ptr heap_array_up; int return_value = 0;