프로그램의 시스템 호출을 계산하기 위해 ptrace를 사용하고 있습니다.
문제는 프로그램 A가 주어지면 내 프로그램은 만든 syscalls (열린, 닫기, 읽기, 쓰기)의 번호를 출력한다는 것입니다.프로그램의 syscalls 계산 및 strace를 사용하여 결과의 유효성 확인
프로그램 A를 인수로 사용하는 my program 및 strace (-c 옵션 사용)의 결과는 열려있는 syscall을 제외하고는 동일합니다.
내 프로그램은 15 strace를 인쇄
3. 인쇄하지만 strace를뿐만 아니라 다른 콜을 인쇄로,이 내 프로그램이 카운트 15 개 열린 콜로 요약 할 수 있다고 추측하고있다.
ORIG_EAX/RAX 레지스터를 찾을 때 ptrace의 결과를 확인하기 위해 SYS_open을 사용하고 있습니다. 인쇄 strace를
시스템 콜은 here.
업데이트 :
내가 터미널에서 내 프로그램을 컴파일하고 거기에서 그것을 실행하고, 결과의 strace와 동일하다.
netbeans에서 개발 중입니다.
왜 이런 일이 발생 했습니까?
@ user315052 : 차이점은 무엇입니까? 나는 단지'SYS_open'을 사용하고 있습니다. (30 분 전에 업데이트를 추가했습니다. 제발보십시오) – Chris
15 개가 열렸다는 것을 어떻게 계산합니까? 네가 얼마나 생각해? –
@JonathanLeffler : 카운터를 사용하면 ptrace에서 반환 된 값이 SYS_open 일 때마다이를 증가시킵니다. 또한, syscalls를 두 번 계산하지 않았습니다 (wait가 두 번 (2 개의 인터럽트를 반환) 이후). 나는 3 회의 폐쇄 (strace와 동일)를 가졌다. – Chris