이 dtrace 오류는 무엇을 의미합니까?


15

iotop -C 5 122010 년 말 Macbook Pro (10.6.7)에서 실행할 때이 오류가 반복해서 발생합니다.

dtrace: error on enabled probe ID 5 (ID 19507: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0

이 원인은 무엇이며 어떻게 해결합니까?

답변:



9

오류가 stderr에 출력되고 다음과 같이 명령을 실행하여 필터링 할 수 있습니다.

sudo iotop -C 5 12 2>/dev/null

이것은 발생할 수있는 다른 오류를 걸러내는 부작용이 있습니다. 나는 그것이 내 요오드 출력을 읽을 수있게한다는 점에서 괜찮은 트레이드 오프라고 판명했다.

불행히도 오류의 원인이 무엇인지 잘 모르겠습니다. 검색했지만 아직 아무것도 찾지 못했습니다.


1
그것은 카펫 밑의 실수를 지우고 존재하지 않는 척하는 것입니다! 문제는 "어떻게 무시합니까?"가 아니라 원인과 해결 방법을 묻는 것이 었습니다.
markshep

5

즉, 추적하지 않도록 요청한 프로세스를 추적하려고 할 때 오류가 표시됩니다.

이 오류는 iTunes에서 기술적으로 발생하는 것이 아니라 다음과 같은 코드를 사용하여 추적을 비활성화 한 프로세스에 의해 발생합니다.

ptrace(PT_DENY_ATTACH, 0, 0, 0);

이 코드는 커널 레벨에서 프로세스에 플래그를 설정하여 프로세스의 디버깅 및 추적을 방지합니다.

이 작업을 수행하는 가장 잘 알려진 응용 프로그램은이 API가 발명 된 DRM을 가진 응용 프로그램 인 iTunes 일 뿐이지 만 다른 프로세스에서도 API를 사용할 수 있습니다. 많은 타사 응용 프로그램에서이 API를 사용하는 것을 보았습니다.

물론 모든 DRM과 마찬가지로 손상 될 수 있습니다. 이 추적 방지 및 디버깅 방지 기능을 무시하는 옵션은 디버거를 사용하여 API 호출을 건너 뛰고 커널 공간에서 기능을 패치하는 커널 확장까지 다양합니다.


1

/unix//a/276219 에서 가져온

이것은 잠재적으로 행동에 csrutil status영향을 줄 수있는 El Capitan 및 시스템 무결성 보호 ( ) 와 관련 이 dtrace있습니다.

잠재적 인 수정에는 Mac을 복구 모드 ( 부팅시 -) 로 재부팅 R한 다음 터미널 실행에서 재부팅하는 것이 포함됩니다 .

csrutil enable --without dtrace

SIP를 사용 가능하게 유지하지만 DTrace 제한을 사용 불가능하게합니다 (참고 : 문서화되지 않은 매개 변수입니다 ).

또는 다음을 수행하여 SIP를 완전히 비활성화하십시오.

csrutil disable # Not recommended.

보다:

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.