使用gdb Server调试嵌入式程序

由于嵌入式设备上的资源有限,很多时候我们都不得不使用gdb+gdb Server 的方式代替gdb进行程序调试。相对来说,要使用gdb Server调试程序需要做一些额外的设置。步骤如下:

  1. 主机与目标机必须在同一网段,能互相访问
  2. 在目标机上运行gdbserver程序,命令如下:
    gdbserver HOST:PORT [app_name] [paramter] [&]

    说明:HOST为主机的ip地址,PORT可以是任意指定的一个端口, app_name是应用程序的名称,&表示在后台运行。其中,目标机上的app可以是被strip过的,这样可以节省空间。

  3. 在主机上运行gdb,命令如下:
    gdb app_name

    说明: app_name是应用程序的名称。其中,主机上的app必须是在编译时加入过-g 并且未被strip过的。

  4. 使用如下命令指定共享库的位置。

    set solib-absolute-prefix /opt/toolchain/pnx8181/sysroot
    set solib-search-path /usr/local/arm-linux/minigui/lib

    说明:

        solib-absolute-prefix 设置文件系统的路径,里面包含的是目标机上程序运行所需要的系统库。

        solib-search-path 设置目标机上程序运行时所依赖的库文件,比如未加入到文件系统中的第三方开源库等。

  5. 连接目标机上的gdbserver。

    target  remote  TARGET:PORT

    说明: TARGET为目标主机的IP地址,PORT为前面指定的端口。

  6. 使用continue命令开始运行目标机上的调试程序并进行调试。

    c

    说明:不能用run命令,应该用continue命令,因为程序已经开始执行了。

posted on 2014-04-21 11:27  sigmon  阅读(602)  评论(0编辑  收藏  举报

导航