시스템 호출을 하고 커널을 다시 컴파일했지만 시스템 호출을 실행하면 Killed가 반환되었습니다. 그래서 이를 추적하기 위해 strace를 사용했는데 다음 메시지가 표시되었습니다.
syscall_0x224(0x7ffda7199738, 0x7ffda7199748, 0x55743750a6d0, 0x7f9f20df7d80, 0x7f9f20df7d80, 0x7ffda7199730) = ?
이것은 무엇을 의미합니까(16진수, 물음표 아님)?
답변1
이는 시스템 호출이 종료되었으며 반환 값이 없음(할 수 없음)을 의미합니다. 예가 제공됩니다strace
수동:
Interruption of a (restartable) system call by a signal delivery is
processed differently as kernel terminates the system call and also
arranges its immediate reexecution after the signal handler
completes.
read(0, 0x7ffff72cf5cf, 1) = ? ERESTARTSYS (To be restarted)
시스템 호출과 마찬가지로 read
반환 값 없이 종료되는 것 같습니다. (시스템 호출과 달리 read
이 호출은 재실행되도록 예약되어 있습니다.)
반환되지 않는 다른 시스템 호출(예 exit_group
: )도 표시됩니다 ?
.
~ strace -e exit_group /bin/true
exit_group(0) = ?
+++ exited with 0 +++