2010-08-01 22 views
1

avec Snow Leopard 10.6.4 Je suis un symbole non résolu obtiens:Trouver l'OS X bibliothèque kext qui contient un symbole

$ sudo kextutil KRPC.kext 
(kernel) kxld[com.machackershandbook.kext.KRPC]: The following symbols are unresolved for this kext: 
(kernel) kxld[com.machackershandbook.kext.KRPC]: _mig_buckets 

Je ne trouve pas ce symbole à l'aide kextfind, mais ce symbole est exporté dans le noyau:

$ kextfind -dsym _mig_buckets 
$ nm -arch i386 /mach_kernel |grep _mig_buckets 
00844b00 S _mig_buckets 
$ nm -arch x86_64 /mach_kernel |grep _mig_buckets 
ffffff8000672e40 S _mig_buckets 

Comment puis-je trouver la bibliothèque kext pour créer un lien avec ce symbole à l'aide du OSBundleLibraries dict?

Répondre

0

Avez-vous essayé d'exécuter kextlibs sur votre kext? cela peut vous donner la dépendance correcte. Sinon, il est probablement l'un des éléments suivants:

  • com.apple.kpi.mach
  • com.apple.kpi.unsupported

voir this apple Q&A pour plus d'informations sur l'indicateur de performance clé non pris en charge

+0

Merci, en plus de com.apple.kpi.mach et com.apple.kpi.unsupported J'ai ajouté la plupart des kexts. – Freeman

+0

J'ai aussi utilisé les deux méthodes que vous proposez et ces méthodes partagent la même chance: $ sudo kextlibs rpc_server.kext pour toutes les architectures: com.apple.kpi.libkern = 10,4 Pour i386: 2 symboles non trouvés dans toute bibliothèque kext. $ /Developer/usr/bin/FindKPI.py _mig_buckets _mig_buckets non trouvé – Freeman

+0

Il y a quelque chose d'étrange ici car il semble que le symbole soit réellement exporté dans le noyau. $ nm -arch i386/mach_kernel | grep _mig_buckets 00844b00 S _mig_buckets – Freeman