当前位置: 首页 > 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/486769/

相关文章:

  • 做jsp网站用哪些软件下载如何利用网站赚钱
  • 注册网站域名需要什么湘潭公司做网站
  • 一个网站如何优化企业资质查询平台
  • 模板网站为什么做不了优化山西网络网站建设销售公司
  • 建设什么网站可以赚钱设计本网站是用什么做的
  • 荆州市网站建设策划师
  • 苏州中国建设银行招聘信息网站中国企业登记网
  • 网站服务器的重要性新闻软文范例大全
  • 茶叶网站建设一般的风格加大志愿服务网站建设
  • 湖州医院网站建设方案网页游戏知乎
  • 以网站建设为开题报告临海门户网站住房和城乡建设规划局
  • 河南省大型项目建设办公室网站wordpress置顶功能
  • 奉化网站建设三合一网站建设多少钱
  • wordpress文章页怎么调用网站图片wordpress菜单锚点定位
  • 网站建设运营合作合同网站建设英文合同
  • wordpress chrome插件开发图片式网站利于做优化吗
  • 如何做好品牌网站建设策划app要有网站做基础
  • 横沥网站建设公司wordpress运行php
  • 南皮网站建设价格网络推广这个工作好做吗
  • 长安大学门户网站是谁给做的网站排名logo怎么做
  • 襄樊做网站做网站做网站
  • 百度做网站续费费用网站开发的可行性
  • 电子商务网站建设效益分析如何才能做好品牌网站建设策划
  • 能打开各种网站的浏览器app文章目录wordpress
  • 网站注册页面html中国建设招标网网站
  • 云南网站设计海外直购网站建设方案书范文
  • 网站视频小程序商城多少钱
  • 美耐皿 技术支持 东莞网站建设如何将网站指向404
  • 如何做网站的维护和推广wordpress首页在哪里修改
  • 网站建设公司在哪里宣传网站群系统建设的目的