프로세스가 호출하는 시스템 호출을 확인하는 "낮은 수준" 방법이 있습니까?

프로세스가 호출하는 시스템 호출을 확인하는 "낮은 수준" 방법이 있습니까?

내 패키지 관리자 역할을 하는 고정 바이너리가 있어서 새 패키지를 설치할 수 없습니다.

gdb에서 실행하면 프로세스가 정지될 때 추적을 얻을 수 있으며 다음과 같은 결과를 얻습니다.

#0  0xb6cd9abc in syscall () from /lib/libc.so.6                                                                                                                                                                  
#1  0xb60a99b0 in startParsing () from /usr/lib/libexpat.so.1

따라서 국외 거주자가 결코 반환되지 않는 시스템 호출을 실행하는 것처럼 보입니다.

이 시스템 호출에 대해 자세히 알아볼 수 있는 "낮은 수준" 방법이 있습니까? strace를 설치하고 싶지만 패키지 관리자가 실패했기 때문에 strace를 시스템에 쉽게 설치할 수 없습니다.

CPU는 ARM이므로 기성 바이너리 다운로드가 좀 더 복잡해집니다.

답변1

strace가 설치되어 있다고 가정합니다.

strace /path/to/binary

편집: 나는 strace가 없다는 마지막 부분을 읽지 않았습니다. strace tarball을 다운로드하고 패키지 관리자를 사용하지 않고도 빌드할 수 있어야 합니다. 빌드 도구가 설치되어 있지 않은 경우 다른 컴퓨터에 정적으로 빌드하여 복사할 수 있습니다.

관련 정보