Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: OS X Entwicklerforum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Sonntag, 20. Januar 2008, 12:31

DTrace und Leopard

Hi,

Adam Leventhal (einer der DTrace-Entwickler bei Sun) hat auf seinem Blog eine interessante Eigenschaft von DTrace unter Leopard bemerkt - ein Prozess kann verhindern, mit DTrace analysiert zu werden:

http://blogs.sun.com/ahl/entry/mac_os_x_and_the

Irgendwie nicht schön - vor allem, wenn sich das Setzen des entsprechenden Flags bei kommerzieller Software weiter durchsetzt. Mal sehn, ob sich das durch einen kleinen Kernelpatch beheben lässt ;).

Verwendet jemand von Euch denn schon(?) DTrace?

-- cuby

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

2

Sonntag, 20. Januar 2008, 12:47

RE: DTrace und Leopard

Hmm, Schweinerei, aber auch nachvollziehbar.

Scheint nur iTunes und den DVD-Player zu betreffen.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

3

Sonntag, 20. Januar 2008, 13:09

RE: DTrace und Leopard

Zitat

Original von Tom9811
Hmm, Schweinerei, aber auch nachvollziehbar.

Scheint nur iTunes und den DVD-Player zu betreffen.


Aber jede Applikation kann das ptrace-disable-Bit explizit setzen. Wenn das genügend Entwickler machen, wird DTrace arg nutzlos - und das wäre doch schade.

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

4

Sonntag, 20. Januar 2008, 13:12

RE: DTrace und Leopard

Jepp, ich sehe das Problem, das du damit hast. Man kann nur hoffen, dass Entwickler davon möglichst keinen Gebrauch machen. Einen Ausweg aus dem Dilemma kann ich aber auch nicht erkennen. Ichh teile insoweit die Einschätzung, dass die MI/FI das wohl verlangt hat.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

5

Sonntag, 20. Januar 2008, 13:43

RE: DTrace und Leopard

Ich denke mal sie haben das aus lizenzrechtlichen Gründen getan.
Persönlich habe ich da auch kein Problem mit.
Sollten andere Entwickler davon auch Gebrauch machen weil sie es können (worin ich übrigens überhaupt keinen Sinn sehe), dann kann man denen ja immer noch aufs Dach steigen.

Aber mal was Anderes:

Quellcode

1
2
3
4
5
6
7
8
9
#if defined(__APPLE__)
        /*
         * If the thread on which this probe has fired belongs to a process marked P_LNOATTACH
         * then this enabling is not permitted to observe it. Move along, nothing to see here.
         */
        if (ISSET(current_proc()->p_lflag, P_LNOATTACH)) {
            continue;
        }
#endif /* __APPLE__ */


Ist es möglich das zu entfernen und DTrace neu zu kompilieren? Dann wäre man lokal das Problem los.
Hilfreich? Dann freue ich mich über eine kleine Spende. :) Flattr this
----
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
----

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

6

Sonntag, 20. Januar 2008, 14:27

RE: DTrace und Leopard

Ich denke schon. Es ist ja auch merkwürdig, DRM-Schutz in OSS zu stecken. ;-)
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

7

Sonntag, 20. Januar 2008, 16:21

RE: DTrace und Leopard

Zitat

Original von Lucas de Vil
Aber mal was Anderes:

Quellcode

1
2
3
4
5
6
7
8
9
#if defined(__APPLE__)
        /*
         * If the thread on which this probe has fired belongs to a process marked P_LNOATTACH
         * then this enabling is not permitted to observe it. Move along, nothing to see here.
         */
        if (ISSET(current_proc()->p_lflag, P_LNOATTACH)) {
            continue;
        }
#endif /* __APPLE__ */


Ist es möglich das zu entfernen und DTrace neu zu kompilieren? Dann wäre man lokal das Problem los.


Das ist Teil der Kernel-Implementierung von DTrace (in xnu/bsd/dev/dtrace/dtrace.c). Entfernen und neu compilieren des Kernels sollte gehen - hab's aber noch nicht getestet. Vielleicht wäre ein libSystem-Wrapper, der das Setzen des entsprechenden Bits verhindert, aber eine sinnvollere Alternative...

8

Sonntag, 20. Januar 2008, 21:21

Vielleicht kann man das verwenden.

Chris
Vögeln statt Drosseln.

9

Montag, 21. Januar 2008, 22:52

Zitat

Original von Chris
Vielleicht kann man das verwenden.


Hab's mal grade angetestet - so direkt geht's nicht (die kext ist für 10.3 bzw. 10.4). Mal sehn, was sich da machen lässt :)

-- cuby

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

10

Dienstag, 22. Januar 2008, 11:59

Aber Humor hat er:

Zitat

Anyone doing this in production code will be sent home with a note to their parents.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

11

Mittwoch, 23. Januar 2008, 11:06

Hehe, so mag ich das:

http://landonf.bikemonkey.org/code/macos…H.20080122.html

...das kext jetzt auch für den Leoparden :)

Beiträge: 373

Wohnort: Hamburg

Beruf: Software Entwickler

  • Private Nachricht senden

12

Mittwoch, 23. Januar 2008, 13:04

Der Typ ist echt verschärft, zuerst portiert er Java 6 im Alleingang und jetzt hackt er so einen kext zusammen ;-)

Beiträge: 4 386

Wohnort: Ruhrgebiet, NRW

Beruf: Mac Indie / Freelancer

  • Private Nachricht senden

13

Mittwoch, 23. Januar 2008, 13:28

RE: DTrace und Leopard

Zitat

Original von cuby

Zitat

Original von Tom9811
Hmm, Schweinerei, aber auch nachvollziehbar.

Scheint nur iTunes und den DVD-Player zu betreffen.


Aber jede Applikation kann das ptrace-disable-Bit explizit setzen. Wenn das genügend Entwickler machen, wird DTrace arg nutzlos - und das wäre doch schade.


Ich dachte DTrace wäre für die eigene Softwareentwicklung gedacht und nicht dazu da in fremden Programmen herumzustöbern. ;)

Beiträge: 2 290

Wohnort: München

Beruf: Unternehmer

  • Private Nachricht senden

14

Mittwoch, 23. Januar 2008, 14:11

RE: DTrace und Leopard

Zitat

Original von MCDan

Zitat

Original von cuby

Zitat

Original von Tom9811
Hmm, Schweinerei, aber auch nachvollziehbar.

Scheint nur iTunes und den DVD-Player zu betreffen.


Aber jede Applikation kann das ptrace-disable-Bit explizit setzen. Wenn das genügend Entwickler machen, wird DTrace arg nutzlos - und das wäre doch schade.


Ich dachte DTrace wäre für die eigene Softwareentwicklung gedacht und nicht dazu da in fremden Programmen herumzustöbern. ;)

Das wundere ich mich auch schon die ganze Zeit...

-- hns

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

15

Mittwoch, 23. Januar 2008, 14:21

RE: DTrace und Leopard

Neee, das kann man so nicht sagen. Du kannst das etwa zu Administrationszwecken einsetzen.

Zitat

Introduction to DTrace
DTrace is a comprehensive dynamic tracing facility that is built into Solaris and can be used by administrators and developers to examine the behavior of both user programs and of the operating system itself. With DTrace you can explore your system to understand how it works, track down performance problems across many layers of software, or locate the cause of aberrant behavior. It is safe to use on production systems and does not require restarting either the system or applications.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

16

Mittwoch, 23. Januar 2008, 14:22

Zitat

Original von cmittendorf
Der Typ ist echt verschärft, zuerst portiert er Java 6 im Alleingang und jetzt hakt er so einen kext zusammen ;-)

Jepp…
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

Beiträge: 2 290

Wohnort: München

Beruf: Unternehmer

  • Private Nachricht senden

17

Mittwoch, 23. Januar 2008, 15:18

RE: DTrace und Leopard

Zitat

Original von Tom9811
Neee, das kann man so nicht sagen. Du kannst das etwa zu Administrationszwecken einsetzen.

Zitat

Introduction to DTrace
DTrace is a comprehensive dynamic tracing facility that is built into Solaris and can be used by administrators and developers to examine the behavior of both user programs and of the operating system itself. With DTrace you can explore your system to understand how it works, track down performance problems across many layers of software, or locate the cause of aberrant behavior. It is safe to use on production systems and does not require restarting either the system or applications.
Ja, aber Du kannst ja eine fremde, lahme Applikation sowieso nur wieder löschen. Oder was willst Du auf dem Mac administieren? Und ohne Open Source kannst Du auch nichts optimieren.

-- hns

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

18

Mittwoch, 23. Januar 2008, 15:39

RE: DTrace und Leopard

Neee, es geht um ganz andere Sachen. Zum Beispiel wunderst du dich, warum irgendwann immer so ein wahnsinniger Betrieb auf dem Filesystem ist. Also schaust du dir alle Prozesse an, die Filezugriffe fahren. Schwupp hast du eine Zugriffsliste.

Oder dasselbe mit Speicher. Komischerweise fängt das System immer am Freitag um 14:53 wie bescheuert zu swappen an. Welche Prozesse verursachen das? Oder bestimmte Ereignisse verursachen das. Welcher Prozess ist daran schuld?

Mit dieser Information kannst du freilich dein System zurecht konfigurieren.


Du hast halt einen Einblick, welches Symptom von wem verursacht wird.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

Beiträge: 2 290

Wohnort: München

Beruf: Unternehmer

  • Private Nachricht senden

19

Mittwoch, 23. Januar 2008, 19:28

RE: DTrace und Leopard

Zitat

Original von Tom9811
Neee, es geht um ganz andere Sachen. Zum Beispiel wunderst du dich, warum irgendwann immer so ein wahnsinniger Betrieb auf dem Filesystem ist. Also schaust du dir alle Prozesse an, die Filezugriffe fahren. Schwupp hast du eine Zugriffsliste.

Oder dasselbe mit Speicher. Komischerweise fängt das System immer am Freitag um 14:53 wie bescheuert zu swappen an. Welche Prozesse verursachen das? Oder bestimmte Ereignisse verursachen das. Welcher Prozess ist daran schuld?

Mit dieser Information kannst du freilich dein System zurecht konfigurieren.


Du hast halt einen Einblick, welches Symptom von wem verursacht wird.

Das geht mit dem Activity Monitor auch schon. Und auf einem Single-User-System hat man meist etwas gemacht kurz bevor das thrashing losgeht. Z.B. ein großes Dokument geöffnet, oder iTunes oder etwas anderes... Oder Spotlight zum Neuindizieren gebracht. Dann weiß man auch ohne dtrace das auslösende Ereignis :) Das sitzt vor dem Bildschirm und trägt eine Brille...

Und: was soll man konfigurieren wenn man mit dtrace herausfindet dass es ein von Apple geliefertes Programm ist?

Du hast m.E. nur wenige Optionen:
1. mehr Speicher einbauen
2. Programm nicht benutzen oder entfernen
3. Neustart
4. einfach abwarten bis sich das System beruhigt

-- hns

Beiträge: 19 451

Wohnort: Köln

Beruf: Rechtsanwalt

Hobbys: FSK18

  • Private Nachricht senden

20

Mittwoch, 23. Januar 2008, 20:29

RE: DTrace und Leopard

Es geht ja mehr um Server. Und dem Activity-Monitor kann du eben nicht sagen, trace mal, wenn gerade dies und jenes passiert.

Mit DTrace hast du ja eine komplette Programmiersprache, um Bedingungen einzugeben.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
verhindert man die Leaks, so verhindert man auch die Begrenzung auf 128 Abfragen

Social Bookmarks