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

  • 相关阅读:
    html页面原生video标签隐藏下载按钮
    css解决多行溢出显示省略号
    移动端轮播图vue-awesome-swiper
    日常踩坑 — 相邻元素之间的margin合并问题。
    (a ==1 && a== 2 && a==3) 有可能是 true 吗?
    如何生成SSH key及查看SSH key
    端口号被占用报错解决方法。
    基于vue开发的element-ui树形控件报错问题解决
    Win10 桌面 通知中心 无法打开
    SolidWorks 杂
  • 原文地址:https://www.cnblogs.com/sigmon/p/3678052.html
Copyright © 2020-2023  润新知