当前位置: 首页 > news >正文

长春网站建设模板制作爱站网络挖掘词

长春网站建设模板制作,爱站网络挖掘词,滕州公司做网站,海口小程序开发目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图形化调试 1 搭建嵌入式gdb调试环境 一般的桌面 Linux 系统比如 ubuntu、centos 等我们可以直接运行 gdb 来调试程序。但是嵌入式中芯片性能一般比较弱所以直接在嵌入式系统中运行 gdb 不太现实(性能强大的嵌入式芯片可以这么做)。嵌入式系统中一般在 PC 端运行 gdb 工具源码也是在 PC 端源码对应的可执行文件放到开发板中运行。为此我们需要在开发板中运行 gdbserver通过网络与 PC 端的 gdb 进行通信。因此要想在 PC 上通过 gdb 调试嵌入式程序那么需要两个东西gdb 和gdbserver其中gdb 是运行在 PC 上的gdbserver 需要我们移植到开发板上。 1.1 交叉编译工具链自带的gdb和gdbserver 一般来说交叉编译工具链都自带了gdb和gdbserver因此可以不用移植我去试了下发现gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf里面自带的gdbserver不能用 我把他放到开发板上执行提示 [rootimx6ull:/mnt]# ./gdbserver -bash: ./gdbserver: No such file or directory然后我又试了下gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf的gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/bin这个目录下的gdbserver放到开发板上是可以用的 那么gdb我也用7.5.0里面的gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb。 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 首先编写一个简单的测试程序用于调试 #include stdio.h #include unistd.hint main(int argc, char *argv[]) {unsigned int times 0;while(1) {printf(runing times:%d\r\n, times);times;sleep(1);} }然后使用如下命令进行编译 arm-linux-gnueabihf-gcc test.c -o test -g //要使用-g选项才会有调试信息 然后我把他放到了开发板的/mnt目录下 1.2.2 gdb调试程序 首先在开发板上执行如下命令 ./gdbserver :1234 test 在开发版上执行命令的时候是不需要指定IP地址的只需要指定端口号即可然后他就会一直监听 然后在电脑上用下面的命令开始调试 ./arm-linux-gnueabihf-gdb test #我这里加了./是因为我没把这个交叉编译工具链加到环境变量中 然后再用下面的命令去连接开发板 target remote 172.31.8.195:1234 这时候开发板上也会发现被连接了 接下来就可以在电脑上调试程序了 比如看一下源码 比如我在main函数的第一行设置断点 1.3 源码编译gdb和gdbserver 如果交叉编译工具链里面没有gdb和gdbserver那么就要自己源码编译gdb和gdbserver方法如下。 1.3.1 下载gdb和gdbserver源码 去网址  http://www.gnu.org/software/gdb/download/ 然后解压 tar xzvf gdb-13.2.tar.gz 1.3.2 编译gdb 在交叉编译configure时通常会需要设置--build、--host和--target选项。各个选项的含义如下 --build编译所用的机器的平台。 --host编译出的代码运行的平台。 --target编译出来的工具链生成的代码的运行平台。这个选项不常用一般只在编译gcc、ld等工具链的过程中用到编译gdb,gdbserver时也会用到。 在不涉及到交叉编译的时候--build、--host、--target是一样的不需要特别设置。交叉编译的时候比如需要在x86平台编译arm程序就需要设置--build和--host选项。 通常本机上的gcc、ld等工具是没有前缀的这个时候--build可以设置为空。交叉编译工具链通常都有一个前缀比如arm-unknown-linux-gnueabi-gcc这个时候--host就要设置为arm-unknown-linux-gnueabi。 Example: ./configure --build --hostarm-unknown-gnueabi 然后用如下命令开始编译、安装 cd gdb-13.2/ mkdir /data/chw/imx6ull_20230512/nfs_rootfs/gdb_install ./configure --targetarm-linux-gnueabihf --prefix/data/chw/imx6ull_20230512/nfs_rootfs/gdb_install make -j8 make install 上面编译的过程中如果报错 gdb-13.2/missing: makeinfo: not found WARNING: makeinfo is missing on your system.You should only need it if you modified a .texi file, orany other file indirectly affecting the aspect of the manual.You might want to install the Texinfo package:http://www.gnu.org/software/texinfo/The spurious makeinfo call might also be the consequence ofusing a buggy make (AIX, DU, IRIX), in which case you mightwant to install GNU make:http://www.gnu.org/software/make/ Makefile:1794: recipe for target doc/bfd.info failed那就 sudo apt-get install texinfo 如果报错 configure: error: GMP is missing or unusable Makefile:11803: recipe for target configure-gdb failed make[1]: *** [configure-gdb] Error 1 make[1]: *** Waiting for unfinished jobs.... 那就用下面的方法 apt-get install libgmp-dev 编译安装完之后得到 这里就不修改PATH环境变量了测试的时候直接加路径。 1.3.3 移植gdbserver gdbserver是在开发板上运行的需要交叉编译gdbserver源码在./gdb-13.2/gdbserver里面 cd ./gdb-13.2/gdbserver ./configure --targetarm-linux-gnueabihf --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g ARarm-linux-gnueabihf-ar LDarm-linux-gnueabihf-ld --prefix/data/chw/imx6ull_20230512/nfs_rootfs/gdbserver_install //配置 make 报错 ../gdbsupport/libgdbsupport.a: error adding symbols: File format not recognized collect2: error: ld returned 1 exit status Makefile:361: recipe for target gdbreplay failed make: *** [gdbreplay] Error 1 make: *** Waiting for unfinished jobs.... 这个问题我是这么想的这个libgdnsupport.a库是在前面编译gdb的时候产生的但由于gdb是在X86电脑上运行的所以这个libgdnsupport.a库是x86格式的 所以我要在重新配置编译一遍gdb只不过这次配置要用下面的命令要编译交叉编译的版本但是不要make install要是install那么前面编译的X86版本的gdb就被覆盖了这一次其实不是为了编译gdb只是为了使用编译gdb过程中产生的库 tar xzvf gdb-13.2.tar.gz cd ./gdb-13.2 ./configure --targetarm-linux-gnueabihf --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g ARarm-linux-gnueabihf-ar LDarm-linux-gnueabihf-ld make -j8 //这次gdb就不要安装了要不然吧前面编译的覆盖了然后再编译gdbserver cd ./gdb-13.2/gdbserver ./configure --targetarm-linux-gnueabihf --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g ARarm-linux-gnueabihf-ar LDarm-linux-gnueabihf-ld --prefix/data/chw/imx6ull_20230512/nfs_rootfs/gdbserver_install  //配置                     make -j8 这时候就会在当前目录下生成一个gdbserver把它拷贝到开发板上即可 然后在开发板上执行 然后电脑上执行 这说明自己编译出来的gdb和gdbserver也是可以用的。 2 VSCodegdbserver 图形化调试 前面介绍的是用gdb命令进行调试的接下来看一下直接用vscode调试这样要比gdb命令方便。 先按照下面的博客安装必要的插件ubuntu上安装vscode并远程开发与远程调试服务器代码_vscode ssh远程连接ubuntu后,怎么打开项目代码-CSDN博客 我现在调试是这样的我的vscode是安装在windows上的然后我要调试的代码test.c是在ubuntu服务器上的所以我要先vscode远程打开ubuntu服务器上的test.c代码就根据上面链接的博客操作就可以然后run--Add Configuration--- 会生成一个launch.json 把vscode里面的launch.json改成下面的内容 {     // Use IntelliSense to learn about possible attributes.     // Hover to view descriptions of existing attributes.     // For more information, visit: https://go.microsoft.com/fwlink/?linkid830387     version: 0.2.0,     configurations: [         {             name: (gdb) Launch,             type: cppdbg,             request: launch,             program: ${workspaceFolder}/test,             args: [],             stopAtEntry: false,             cwd: ${fileDirname},             environment: [],             externalConsole: false,             MIMode: gdb,             miDebuggerPath: /data/chw/imx6ull_20230512/nfs_rootfs/gdb_install/bin/arm-linux-gnueabihf-gdb,             miDebuggerServerAddress: 172.31.8.195:1234         }     ] } 其中 miDebuggerPath此项需要手动添加用于指定所使用的交叉编译器 gdb 路径。 miDebuggerServerAddress此项需要手动添加远程 gdbserver 服务器地址。  然后开发板上还是老样子运行gdbserver 然后vscode上直接按F5然后开发板上打印出了被连接的log。 然后就可以在vscode上进行调试了。
http://www.zqtcl.cn/news/225917/

相关文章:

  • 西安网站建设新闻柳市专业网站托管
  • 网站怎么做移动端织梦网暂时关闭网站
  • 上海响应式网站建设企业seo 优化是什么
  • pc主页网站建设专业公司网站建设服务公司
  • js 取网站域名做服装团购有哪些网站有哪些
  • ysl网站设计论文网站快照回档
  • 网站建设成本计划汕头网站开发服务
  • 云朵课堂网站开发怎么收费wordpress安装完不显示
  • 网站建设进什么分录wordpress5.0 安装
  • 网站建设丷金手指专业十五户县规划建设和住房保障局网站
  • 普通门户网站开发价格怎么查公司信息
  • 广告传媒公司网站怎么做高品质的网站开发公司
  • 建设品牌型网站制作一起做玩具网站
  • 中山品牌网站设计自建站怎么做
  • 最牛免费网站建设wordpress 相册功能
  • 网站开发是培训网站开发毕业设计评审表
  • 网站对网友发帖隐私做处理网站怎么上传模板
  • 网站建设大神级公司网站 百度地图
  • 网站营销定义高端网站建设免费分析
  • 韩国网站建站html5修改器下载
  • 网站做联盟广告能赚钱吗如何制作微信小程序教程
  • 免费网页代理浏览器1广州seo效果
  • 网站开发所需基础知识学网络营销有前途吗
  • php网站怎么做集群wordpress添加产品图
  • 公司怎么建立网站吗聊城高端网站建设
  • 女生做网站编辑wordpress 办公主题
  • 接单做网站的从什么网站建网站好
  • 服务器如何发布网站正能量不良网站进入窗口免费阅读
  • 深圳个性化建网站服务商百度秒收录神器
  • 金华做公司网站wordpress会员可见插件