Was bedeutet dieser Verfolgungsfehler?

15

Bei der Ausführung iotop -C 5 12auf meinem Macbook Pro (10.6.7) für Ende 2010 werden folgende Fehler wiederholt angezeigt:

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

Was ist die Ursache dafür und wie behebe ich das?

Chris R
quelle

Antworten:

7

Laut diesem Blog-Beitrag (mit weiteren Informationen hier ) wird es von iTunes verursacht, das DTrace "filtert", sodass es nicht verwendet werden kann, um den DRM von iTunes zu beschädigen.

Das Beenden von iTunes behebt den Fehler.

Daniel Serodio
quelle
14
Ich erhalte diesen Fehler auch dann, wenn iTunes nicht ausgeführt wird.
Studgeek
9

Die Fehler werden an stderr ausgegeben und können herausgefiltert werden, indem der Befehl wie folgt ausgeführt wird:

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

Dies hat den Nebeneffekt, dass andere möglicherweise auftretende Fehler herausgefiltert werden. Ich habe festgestellt, dass es ein guter Kompromiss ist, da meine iotop-Ausgabe lesbar ist.

Ich bin mir leider nicht sicher, woran die Fehler liegen. Ich habe gesucht, aber noch nichts gefunden.

David Ludwig
quelle
1
Das ist nur die Fehler unter den Teppich kehren und so tun, als ob sie nicht existieren! Die Frage war, was sie verursacht und wie man sie behebt, nicht "wie ignoriere ich sie?".
Markshep
5

Kurz gesagt, der Fehler wird angezeigt, wenn versucht wird, einen Prozess nachzuverfolgen, für den keine Nachverfolgung angefordert wurde.

Der Fehler wird technisch gesehen nicht von iTunes verursacht, sondern von einem Prozess, bei dem die Ablaufverfolgung mithilfe des folgenden Codes deaktiviert wurde.

ptrace(PT_DENY_ATTACH, 0, 0, 0);

Dieser Code setzt ein Flag für den Prozess auf Kernelebene, wodurch das Debuggen und Verfolgen des Prozesses verhindert wird.

Die bekannteste Anwendung, die dies tut, ist iTunes, die Anwendung, für deren DRM diese API wahrscheinlich erfunden wurde, aber die API ist für andere Prozesse verfügbar. Ich habe eine Reihe von Drittanbieteranwendungen gesehen, die diese API verwenden.

Natürlich kann es wie jedes DRM kaputt gehen. Die Optionen zur Umgehung dieser Funktion zur Ablaufverfolgung und zum Debuggen reichen von der Verwendung eines Debuggers zum Überspringen des API-Aufrufs zu Kernel-Erweiterungen, mit denen die Funktion im Kernelspeicher ausgebessert wird.

Alexander O'Mara
quelle
1

Entnommen aus /unix//a/276219

Dies hängt möglicherweise mit El Capitan und seinem Systemintegritätsschutz ( csrutil status) zusammen, der sich auf das dtraceVerhalten auswirken kann .

Das mögliche Update beinhaltet das Neustarten des Mac im Wiederherstellungsmodus ( - Rbeim Booten) und dann im Terminal:

csrutil enable --without dtrace

um SIP aktiviert zu lassen, aber DTrace-Einschränkungen zu deaktivieren (Hinweis: Dieser Parameter ist nicht dokumentiert ).

Oder deaktivieren Sie SIP vollständig durch:

csrutil disable # Not recommended.

Sehen:

joeyhoer
quelle