我想在另一台机器上调试mac驱动程序,但我无法创建符号文件。它总是失败,谁能有想法?

时间:2013-12-04 07:55:13

标签: macos debugging xcode5 symbols iokit

我想在另一台机器上调试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

我能做些什么来做对吗?

1 个答案:

答案 0 :(得分:0)

您需要什么符号文件?当与10.7-10.9的调试工具包一起使用时,gdb / lldb通常会在连接到目标计算机时动态生成偏移量,并在调试器控制台上添加带有add-kext的kext。您只需要一个带有直接编译的调试信息的.kext,或者带有.kext的.dSYM包。我甚至不确定那些OSX版本是否支持生成这样的符号文件。

您的kext是否在目标计算机上加载?如果没有,你的kext的Info.plist声明了什么依赖? kextlibs仅根据二进制文件所需的符号输出在您的Info.plist中的依赖关系,并假设当前内核版本应该是最早支持的,而不是实际上在Info.plist中指定。