Lỗi dtrace này có nghĩa là gì?


15

Khi chạy iotop -C 5 12trên Macbook Pro cuối năm 2010 (10.6.7), tôi gặp lỗi lặp lại:

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

Nguyên nhân của việc này là gì và làm cách nào để khắc phục nó?

Câu trả lời:


7

Theo bài đăng trên blog này (có thêm thông tin ở đây ), đó là do iTunes, do "bộ lọc" của DTrace, do đó, nó không thể được sử dụng để cố gắng phá vỡ DRM của iTunes.

Thoát khỏi iTunes giải quyết lỗi.


14
Tôi gặp lỗi này ngay cả khi iTunes không chạy.
studgeek

9

Các lỗi đang nhận đầu ra cho thiết bị lỗi chuẩn và có thể được lọc ra bằng cách chạy lệnh như sau:

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

Điều này không có tác dụng phụ trong việc lọc ra bất kỳ lỗi nào khác có thể xảy ra. Tôi đã thấy nó là một sự đánh đổi ok, trong đó nó làm cho sản lượng iotop của tôi có thể đọc được.

Thật không may, tôi không chắc nguyên nhân của lỗi là gì. Tôi đã tìm kiếm, nhưng vẫn chưa thể tìm thấy bất cứ điều gì.


1
Đó chỉ là quét các lỗi dưới thảm và giả vờ rằng chúng không tồn tại! Câu hỏi đặt ra là điều gì đã gây ra chúng và cách khắc phục chúng, chứ không phải "làm thế nào để tôi bỏ qua chúng?".
markshep

5

Nói tóm lại, lỗi được hiển thị khi cố gắng theo dõi một quá trình đã yêu cầu không được theo dõi.

Lỗi không phải do iTunes gây ra về mặt kỹ thuật, mà do quá trình đã vô hiệu hóa theo dõi, sử dụng mã như sau.

ptrace(PT_DENY_ATTACH, 0, 0, 0);

Mã này đặt cờ trên tiến trình ở cấp hạt nhân, điều này ngăn việc gỡ lỗi và theo dõi tiến trình.

Ứng dụng nổi tiếng nhất thực hiện điều này chỉ là iTunes, ứng dụng có DRM API này có thể được phát minh ra, nhưng API có sẵn cho các quy trình khác. Tôi đã thấy một số ứng dụng bên thứ 3 sử dụng API này.

Tất nhiên, giống như tất cả DRM, nó có thể bị phá vỡ. Các tùy chọn bỏ qua phạm vi tính năng chống theo dõi và chống gỡ lỗi này bằng cách sử dụng trình gỡ lỗi để bỏ qua lệnh gọi API đến các tiện ích mở rộng kernel vá tính năng này trong không gian kernel.


1

Lấy từ /unix//a/276219

Điều này có khả năng liên quan đến El Capitan và Bảo vệ toàn vẹn hệ thống ( csrutil status) có thể ảnh hưởng đến dtracehành vi.

Khắc phục tiềm năng bao gồm khởi động lại Mac vào chế độ khôi phục ( - Rtại thời điểm khởi động), sau đó trong Terminal run:

csrutil enable --without dtrace

để bật SIP, nhưng vô hiệu hóa các hạn chế DTrace (lưu ý: đây là tham số không có giấy tờ ).

Hoặc vô hiệu hóa SIP hoàn toàn bằng cách:

csrutil disable # Not recommended.

Xem:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.