test: ptrace compatibility with *BSD

This commit is contained in:
Greg V 2018-07-10 14:01:54 +03:00
parent 8cc4de5fc9
commit d23074cec9
2 changed files with 9 additions and 3 deletions

View file

@ -97,6 +97,12 @@ if cc.has_header('xlocale.h')
config_h.set('HAVE_XLOCALE_H', '1') config_h.set('HAVE_XLOCALE_H', '1')
endif endif
if not cc.has_header_symbol('sys/ptrace.h', 'PTRACE_ATTACH', prefix : prefix)
config_h.set('PTRACE_ATTACH', 'PT_ATTACH')
config_h.set('PTRACE_CONT', 'PT_CONTINUE')
config_h.set('PTRACE_DETACH', 'PT_DETACH')
endif
# Dependencies # Dependencies
pkgconfig = import('pkgconfig') pkgconfig = import('pkgconfig')
dep_udev = dependency('libudev') dep_udev = dependency('libudev')

View file

@ -3870,10 +3870,10 @@ is_debugger_attached(void)
if (pid == 0) { if (pid == 0) {
int ppid = getppid(); int ppid = getppid();
if (ptrace(PTRACE_ATTACH, ppid, NULL, NULL) == 0) { if (ptrace(PTRACE_ATTACH, ppid, NULL, 0) == 0) {
waitpid(ppid, NULL, 0); waitpid(ppid, NULL, 0);
ptrace(PTRACE_CONT, NULL, NULL); ptrace(PTRACE_CONT, ppid, NULL, 0);
ptrace(PTRACE_DETACH, ppid, NULL, NULL); ptrace(PTRACE_DETACH, ppid, NULL, 0);
rc = 0; rc = 0;
} else { } else {
rc = 1; rc = 1;