我想在另一台机器上调试mac驱动程序,但我无法创建符号文件。
my os: mavericks 10.9
xcode: 5.0.2
iokit dmg: kernel_debug_kit_10.9_13a603.dmg (from apple dev center)
第一: 我用
kextlibs -xml MyDriver.kext
它显示:
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.iokit</key>
<string>13.0</string>
<key>com.apple.kpi.libkern</key>
<string>13.0</string>
</dict>
第二 我用
sudo kextutil -s /tmp -n -arch x86_64 -k /Volumes/KernelDebugKit/mach_kernel -e -r /Volumes/KernelDebugKit /tmp/MyDriver.kext
它显示:
Notice: /tmp/MyDriver.kext has debug properties set.
/tmp/MyDriver.kext - no dependency found for com.apple.kpi.iokit.
/tmp/MyDriver.kext - no dependency found for com.apple.kpi.libkern.
/tmp/MyDriver.kext - no dependency found for com.apple.kpi.iokit.
/tmp/MyDriver.kext - no dependency found for com.apple.kpi.libkern.
Diagnostics for /tmp/MyDriver.kext:
Dependency Resolution Failures:
No kexts found for these libraries:
com.apple.kpi.iokit
com.apple.kpi.libkern
Code Signing Failure: not code signed
我能做些什么来做对吗?
答案 0 :(得分:0)
您需要什么符号文件?当与10.7-10.9的调试工具包一起使用时,gdb / lldb通常会在连接到目标计算机时动态生成偏移量,并在调试器控制台上添加带有add-kext
的kext。您只需要一个带有直接编译的调试信息的.kext,或者带有.kext的.dSYM包。我甚至不确定那些OSX版本是否支持生成这样的符号文件。
您的kext是否在目标计算机上加载?如果没有,你的kext的Info.plist声明了什么依赖? kextlibs
仅根据二进制文件所需的符号输出应在您的Info.plist中的依赖关系,并假设当前内核版本应该是最早支持的,而不是实际上在Info.plist中指定。