mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-22 13:05:52 -04:00

This is the conclusion of an effort to get LLDB's Python code structured into a bona-fide Python package. This has a number of benefits, but most notably the ability to more easily share Python code between different but related pieces of LLDB's Python infrastructure (for example, `scripts` can now share code with `test`). llvm-svn: 251532
38 lines
1015 B
C++
38 lines
1015 B
C++
#include <stdio.h>
|
|
|
|
#if defined(__linux__)
|
|
#include <sys/prctl.h>
|
|
#endif
|
|
|
|
#include <chrono>
|
|
#include <thread>
|
|
|
|
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.
|
|
temp = 0;
|
|
|
|
while (temp < 30) // Waiting to be attached...
|
|
{
|
|
std::this_thread::sleep_for(std::chrono::seconds(2));
|
|
temp++;
|
|
}
|
|
|
|
printf("Exiting now\n");
|
|
}
|