• 使用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命令,因为程序已经开始执行了。

  • 相关阅读:
    计算 时间戳 时间差
    Convert.ToInt32(string '000000003') 变成了 3
    mvc 二级域名 重定向
    访问微信的统一下单接口经常超时 操作超时
    EF 批量更新删除(linq篇)
    java提供了native2ascii工具
    局域网内Tomcat服务器没法访问
    程序实现发送邮件
    InputStream和OutputStream与String之间的转换
    开发中/listfile.jsp(11,31) quote symbol expected 这个错误
  • 原文地址:https://www.cnblogs.com/sigmon/p/3678052.html
Copyright © 2020-2023  润新知