Author: tfiala Date: Sun Oct 26 17:08:56 2014 New Revision: 220654 URL: http://llvm.org/viewvc/llvm-project?rev=220654&view=rev Log: Fix TestAttachResume test so it doesn't hang on Linux with ptrace lockdown.
Similar to previous fix, this augments the test inferior to immediately indicate it may be ptraced by any Linux process when the appropriate symbols are defined. This seems to indicate we need to fix our lldb attach logic to catch when an attach fails, and trigger an appropriate error instead of the current behavior of hanging indefinitely. Modified: lldb/trunk/test/functionalities/attach_resume/main.cpp Modified: lldb/trunk/test/functionalities/attach_resume/main.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/attach_resume/main.cpp?rev=220654&r1=220653&r2=220654&view=diff ============================================================================== --- lldb/trunk/test/functionalities/attach_resume/main.cpp (original) +++ lldb/trunk/test/functionalities/attach_resume/main.cpp Sun Oct 26 17:08:56 2014 @@ -4,6 +4,10 @@ #include <chrono> #include <thread> +#if defined(__linux__) +#include <sys/prctl.h> +#endif + void *start(void *data) { int i; @@ -19,6 +23,19 @@ void *start(void *data) int main(int argc, char const *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 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) + // For now we execute on best effort basis. If this fails for + // some reason, so be it. + const int prctl_result = prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); + static_cast<void> (prctl_result); +#endif +#endif + static const size_t nthreads = 16; std::thread threads[nthreads]; size_t i; _______________________________________________ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits