海思使用gdbserver进行程序调试

gkh 发布于 2022-05-07 11165 次阅读


使用的是gdb8.1版本链接
上手开始先修改
创建新环境
Error: ‘log2’ is not a member of ‘std’
将std::删除

  (std::pow (2, std::ceil (std::log2 (name_count * 4 / 3))));
  //旧的
   (std::pow (2, std::ceil (log2 (name_count * 4 / 3))));
    //新的

在obstack.h中增加定义
undefined reference to _obstack_free' 错误
解决方法:使用宏定义使用_obstack_free函数替换obstack_free

#ifndef obstack_free
#define _obstack_free obstack_free
#endif

gdb宿主机(虚拟机的编译)
首先下载一个expat否则后续运行会出错!
在gdb目录下执行

./configure --target=arm-himix100-linux   --with-expat -with-libexpat-prefix=/usr/local/expat --program-prefix=arm-himix100-linux --prefix=/your_path/gdb-8.1/bin
make -j8&&make install

进行编译
在gdb/gdbserver目录下

./configure --prefix=/your_path/gdb-8.2/gdb/gdbserver/bin --host=arm-himix100-linux LD=arm-himix100-linux-ld CC=arm-himix100-linux-gcc CXX=arm-himix100-linux-g++
make -j8&&make install

进行gdbserver编译
运行命令时需要

./gdbserver :6666 serial 1#gdbserver名称 加ip:端口 ip可省略 后面跟需要执行的执行文件和相关输入参数

在虚拟机中执行编译好的gdb文件

remote server xxxxxx:6666

或者配置eclipse
1651840299012.png
1651840236654.png
1651840360509.png
配置好了以后即可进行远程调试

此作者没有提供个人介绍。
最后更新于 2022-05-07