如何连接目标远程进行内核调试

时间:2013-02-12 15:26:09

标签: debugging linux-kernel

您好我已完成以下内核调试步骤

  1. / configure --build = i786-pc-linux-gnu CC = gcc ARCH = arm --enable-verbose-usb-io --enable-verbose-usb-comms

  2. 在($ Projects)/xxx_projects/linux-2.6.39.4/.config

    中相应地设置以下参数
      

    CONFIG_CONSOLE_POLL = Y   CONFIG_KGDB = Y   CONFIG_KGDB_SERIAL_CONSOLE = Y   CONFIG_KGDB_TESTS = Y   CONFIG_KGDB_TESTS_ON_BOOT = Y   CONFIG_KGDB_TESTS_BOOT_STRING = “V1F100”   CONFIG_KGDB_KDB = Y   CONFIG_KDB_KEYBOARD = Y

  3. 在询问

    时运行以下选项
      

    KGDB:内核调试器(KGDB)[Y / n /?] y   KGDB:在串行控制台上使用kgdb(KGDB_SERIAL_CONSOLE)[Y / n / m /?](NEW)Y   KGDB:内部测试套件(KGDB_TESTS)[N / y /?](NEW)y   KGDB:在启动时运行测试(KGDB_TESTS_ON_BOOT)[N / y /?](NEW)y   KGDB:运行哪个内部kgdb测试(KGDB_TESTS_BOOT_STRING)[V1F100](新)   KGDB_KDB:包括kgdb的kdb前端(KGDB_KDB)[N / y /?](NEW)y   KGDB_KDB:键盘作为输入设备(KDB_KEYBOARD)[N / y /?](NEW)y

  4. 复制新生成的图像

  5. 6a上。选择ttyS0作为板调试终端。在启动之前的终端上,电路板bootargs设置如下

      

    $>> setenv bootargs'console = ttyS0,115200 root = / dev / ram0 rw kdgb = ttyS0,115200 kgdboc = ttyS0,115200N8 kgdbwait kgdbts ='

         

    $>> saveenv

         

    $>>靴   等待连接进行远程调试..

    === OR ===

    6b。启动后也是这样。

      

    -sh-3.2 #echo ttyS0> / sys / module / kgdboc / parameters / kgdboc   kgdb:已注册的I / O驱动程序kgdboc。

         

    -sh-3.2#sysctl -w kernel.sysrq = 1
      kernel.sysrq = 1

         

    -sh-3.2 #echo g>的/ proc / sysrq的触发   SysRq:DEBUG   KGDB或KDB的3#33#

    1. 在主机方面
    2.   

      一个。 ==> GDB

           

      湾(gdb)文件vmlinux

           

      ℃。设置remotelogfile gdblog.txt

           

      d。 (gdb)br sys_sync

           

      即(gdb)设置debug serial 1

           

      F。 (gdb)设置remotebaud 115200

           

      克。 (gdb)设置debug remote 1

           

      小时。 (gdb)target remote / dev / XXX1

      对于linux主机使用虚拟框,我无法识别要连接的目标/ dev / xxx。

      调试终端连接到服务器的ttyS0是否相同。

      是否有任何命令我们可以在主机端看到串行终端号/端口

      当我运行上述步骤时,我只能看到从客户端发送的一些序列包但没有来自gdb服务器的确认(板载)

0 个答案:

没有答案