Wie Sie wahrscheinlich herausgefunden haben, muss Apple nur Teile des Kernels veröffentlichen, die aus anderen Open-Source-Projekten stammen, und das umfasst nicht die Benutzerland-Bibliotheken, die sie auf dem Kernel aufbauen. CoreSymbolication/CoreSymbolication.h
klingt jedoch sehr nach einem Userspace-Header für Obj-C, sodass Sie wahrscheinlich die Kernel-DTrace-Dienstprogramme auch ohne ihn erstellen können. (Obwohl ich mich auch irren könnte.)
Ich vermute, es wird für die Symbolidentifikation im Benutzerland-Befehl dtrace(1m)
verwendet. Wenn es nur ein Tool gäbe, das uns bei der Lösung dieses Rätsels helfen könnte... :-D
# dtrace -n 'pid$target:CoreSymbolication::entry {}' -c 'dtrace -ln syscall::write:entry'
dtrace: Die Beschreibung 'pid$target:CoreSymbolication::entry ' passte zu 246 Sonden
ID PROVIDER MODULE FUNCTION NAME
147 syscall write entry
dtrace: pid 88089 has exited
CPU ID FUNCTION:NAME
2 6538 CSSymbolOwnerGetRegionWithName:entry
2 5014 CSSymbolOwnerForeachRegionWithName:entry
2 5078 CSRegionForeachSymbol:entry
2 6495 CSSymbolicatorGetSymbolOwnerWithUUIDAtTime:entry
2 6493 CSSymbolicatorForeachSymbolOwnerWithUUIDAtTime:entry
2 6494 CSSymbolicatorForeachSymbolOwnerWithCFUUIDBytesAtTime:entry
2 5048 CSSymbolOwnerGetDataFlags:entry
2 6538 CSSymbolOwnerGetRegionWithName:entry
2 5014 CSSymbolOwnerForeachRegionWithName:entry
2 5078 CSRegionForeachSymbol:entry
2 5092 CSSymbolIsExternal:entry
2 5092 CSSymbolIsExternal:entry
...
Sieht so aus, als würde die Bibliothek jedenfalls vom Befehl dtrace
verwendet.
0 Stimmen
DTrace ist in den standardmäßigen Lieferkern in Snow Leopard eingebaut. Was genau möchtest du tun?
0 Stimmen
Ich möchte es von Grund auf neu aufbauen. Ich dachte, das wäre Teil des Deals mit einem Open-Source (CDDL)-Paket, aber vielleicht muss Apple nicht alle Teile bereitstellen, um dies wahr zu machen?