OSX에서 ptrace() 프로그램 컴파일하기

OSX에서 ptrace() 프로그램 컴파일하기

MacOS에는 다음과 같은 간단한 C 프로그램이 있습니다.

#include <stdlib.h>
#include <sys/wait.h>
#include <stdio.h>
#include <sys/ptrace.h>


int main(int argc, char *argv[]) {
    pid_t pid = atoi(argv[1]);
    printf("pid = %jd\n", (intmax_t) pid);
    return ptrace(PT_ATTACHEXC, pid, 0, 0);
}

gcc/cc를 사용하여 컴파일하면 다음 오류가 발생합니다.

In file included from my-waiter.c:4:
/usr/include/sys/ptrace.h:99:38: error: unknown type name 'caddr_t'
int     ptrace(int _request, pid_t _pid, caddr_t _addr, int _data);
                                         ^
1 error generated.

ptrace()OSX에서 이것을 사용하는 방법을 아는 사람이 있습니까 ? 나는 그것을 컴파일하는 방법을 모른다.

답변1

그림에서 알 수 있듯이사용자 4556274#include <sys/types.h>, 먼저 이 작업을 수행 해야 합니다 ( #include <sys/ptrace.h>자세한 내용은 로컬 ptrace(3)맨페이지 참조).

관련 정보