使用Eclipse CDT调试Linux内核时,“没有源可用0x”

时间:2014-12-22 10:03:14

标签: c eclipse debugging linux-kernel eclipse-cdt

这是我对stackoverflow的第一篇文章,所以对任何错误道歉:)。我正在尝试使用Eclipse / CDT调试Linux内核,方法是遵循多个网站提供的信息。但是,每次我尝试调试内核时,都会收到“No source available 0x .....”消息。(参见附页截图)。

  1. 我使用qemu虚拟机“qemu -s -S -kernel bzImage ...”运行linux内核

  2. 我尝试从Eclipse / CDT运行调试。为此,我配置了“C / C ++ Attach to Application”调试。该应用程序是vmlinux文件。 gdbserver类型的远程配置配置为localhost:1234。

  3. Altough我无法使用Eclipse / CDT进行调试,我可以使用gdb CLI调试内核:

    # gdb vmlinux
    > remote target localhost:1234
    > cont
    

    有关版本的信息:

    • Linux Mint 17 KDE
    • Eclipse 4.4.1
    • CDT 8.5.0
    • qemu 2.0.0 + dfsg-2ubuntu1.9
    • gcc 4.8.2-1ubuntu6
    • gdb 7.7.1-0ubuntu5~14.04.2

1 个答案:

答案 0 :(得分:0)

“ C / C ++附加到应用程序”调试配置不适用于此设置。您可以改为使用“ C / C ++远程应用程序”配置,并使用手动远程调试启动器:

  • 在Eclipse中打开“调试配置”窗口,并创建一个新的“ C / C ++远程应用程序”配置
  • 在窗口的底部指示正在使用哪个启动器:如果您看到除手动远程调试启动器以外的任何内容,请单击“选择其他...”,然后在启动器选择窗口中选择“ GDB(DSF)手动远程调试启动器”
  • 在调试配置的“主要”标签中,在“项目”字段中输入拥有Linux内核的Eclipse项目,在“ C / C ++应用程序”字段中输入vmlinux文件
  • 在“调试器”选项卡的“调试器选项”下,选择“连接”选项卡,然后选择“ TCP”作为连接类型,在主机地址字段中输入“ localhost”,在端口号字段中输入“ 1234”
  • 可能在“源”选项卡中调整源查找路径
  • 使用通常的“ -s -S”选项启动QEMU
  • 现在,您应该能够在Eclipse中启动调试会话,并具有有效的符号解析和源查找功能