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

北京好的网站建设wordpress产品发布插件

北京好的网站建设,wordpress产品发布插件,关键词都有哪些,中小企业网站制作软件C/C调试工具 -gdb详解 1 简介 2 常用的命令 3 使用的条件 4 程序调试 4.1 直接运行程序 4.2 断点调试(在某一行) 4.3 断点调试(在函数入口处打断点) 5 调试core文件 5.1 生成core文件的方法 5.2 调试core文件 1 简介 GDB是Linux下非常好用且强大的调试工具。GD… C/C调试工具 -gdb详解 1 简介 2 常用的命令 3 使用的条件 4 程序调试   4.1 直接运行程序   4.2 断点调试(在某一行)   4.3 断点调试(在函数入口处打断点) 5 调试core文件   5.1 生成core文件的方法   5.2 调试core文件 1 简介 GDB是Linux下非常好用且强大的调试工具。GDB可以调试C、C、Go、java、 objective-c、PHP等语言,是做后端软件开发必备的工具 可以完成如下的功能 : 1 按照自定义的方式启动运行需要调试的程序2 程序暂停时的值的监视动态改变程序的执行环境 2 常用的命令 命令详解file filename加载被调试的可执行文件run重新开始运行文件start单步执行 运行程序 停在第一执行语句list查看源代码set设置变量的值start单步执行 运行程序 停在第一执行语句next单步跳过(直接执行函数)step单步执行 进入函数内部执行backtrace查看函数的调用栈帧和层级关系(简写bt)frame切换的函数的栈帧info查看函数内部局部变量的值finish结束当前函数 回到函数的调用点continue继续执行 简写cprint打印值及地址 简写pquit退出gdb 3 使用的条件 在编译时使用 g/gcc -g选项 查看是否带有编译信息 如上所示则表示带有调试信息 如上所示,则表示编译时没有带 -g选项 因此无法是gdb进行调试 4 程序调试 4.1 直接运行程序 使用gdb工具运行的代码如下 #include stdio.h int main() {int index 0;for (;index 10;index){printf(index %d ,index);}printf(\n);return 0; }编译 gcc -g test.c -o testgdb 运行 [rootchao_1 /home/vagrant/clan/test]$ gdb test GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-redhat-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /home/vagrant/clan/test/test...done. ## run 运行 (gdb) run Starting program: /home/vagrant/clan/test/test index 0 index 1 index 2 index 3 index 4 index 5 index 6 index 7 index 8 index 9 [Inferior 1 (process 12553) exited normally] Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_644.2 断点调试(在某一行) 1 在某一行打断点   格式: ## 简写 b filename:rownum break filename:rownum2 继续运行   ## 简写 c continue输出变量的值   print varname[rootchao_1 /home/vagrant/clan/test]$ gdb test GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-redhat-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /home/vagrant/clan/test/test...done.## 1 加载可执行文件 (gdb) file test Load new symbol table from /home/vagrant/clan/test/test? (y or n) y Reading symbols from /home/vagrant/clan/test/test...done.## 2 在test.c文件的第7行打断点 (gdb) b test.c:7 Breakpoint 1 at 0x40058e: file test.c, line 7.## 3 运行程序 (gdb) r Starting program: /home/vagrant/clan/test/testBreakpoint 1, main () at test.c:7 7 printf(index %d ,index); Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64##4 输出变量的值 (gdb) print index $1 0##5 继续允许程序 (gdb) c Continuing.Breakpoint 1, main () at test.c:7 7 printf(index %d ,index); (gdb) print index $2 1 (gdb) c Continuing.Breakpoint 1, main () at test.c:7 7 printf(index %d ,index); (gdb) print index $3 2 4.3 断点调试(在函数入口处打断点) 格式 breakpoint file_name:function_name 调试样例   代码 #include iostream #include string using namespace std;static int get_index(const string s1, const string s2) {if (s1 NULL || s2 NULL || s2.length() 1 s1.length() s2.length()){return -1;}int L1 s1.length();int L2 s2.length();int i1 0;int i2 0;int retIndex 0; // 匹配s1开始的位置while (i1 L1 i2 L2){if (s1[i1] s2[i2]){i1;i2;}else // 以retIndex开头是匹配不出来的 要从 retIndex的下一个开始{i1 retIndex;i2 0;}}return i2 L2 ? retIndex : -1; }int main() {std::string s1 abcgdb;std::string s2 gdb;int index get_index(s1,s2);std::cout index index std::endl;return 0; } 编译 g -g test.cpp -o test函数断点调试   [vagrantchao_1 /home/vagrant/clan/test]$ gdb test GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-redhat-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /home/vagrant/clan/test/test...done. ## 1 . 在函数入口处打断点(gdb) b test.cpp:get_index Breakpoint 1 at 0x400afe: file test.cpp, line 7.## 2 运行程序 (gdb) r Starting program: /home/vagrant/clan/test/testBreakpoint 1, get_index (s1abcgdb, s2gdb) at test.cpp:7 7 if (s1 NULL || s2 NULL || s2.length() 1 s1.length() s2.length()) Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 libstdc-4.8.5-44.el7.x86_64## 3 继续运行 直接跳过函数 (gdb) c Continuing. index 3 [Inferior 1 (process 16728) exited normally]查看断点 info breakpoints(gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x0000000000400afe in get_index(std::string const, std::string const) at test.cpp:7breakpoint already hit 1 time (gdb) 5 调试core文件 5.1 生成core文件的方法 产生coredump的条件首先需要确认当前会话的ulimit –c若为0则不会产生对应的coredump需要进行修改和设置 ulimit -culimit -c unlimited更改core dump生成路径 ## %e表示程序名 %p表示进程id echo /home/vagrant/core/core.%e.%p /proc/sys/kernel/core_pattern5.2 调试core文件 测试代码 int main() {char* str gdbcoretest;str[0] G;return 0; }编译 g -g test.c -o test运行 [vagrantchao_1 /home/vagrant/clan/test]$ ./test Segmentation fault (core dumped)查看结果,出现了段错误 查看生成的core文件 [vagrantchao_1 /home/vagrant/core]$ ll total 300 -rw-------. 1 vagrant vagrant 245760 Nov 12 06:12 core.test.19727 -rw-------. 1 vagrant vagrant 245760 Nov 12 06:15 core.test.20012调试core文件 ## gdb 可执行文件名 core文件名 gdb test core.test.19727/home/vagrant/clan/test]$ gdb test core.test.20379 GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-redhat-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /home/vagrant/clan/test/test...done. [New LWP 20379] Core was generated by ./test. Program terminated with signal 11, Segmentation fault. #0 0x00000000004004fd in main () at testCore.c:5 5 str[0] G; Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64 ## 查看函数的栈帧 testCore.c 第5行出现了段错误 ## 使用 where 也可以 (gdb) bt #0 0x00000000004004fd in main () at testCore.c:5(gdb) where #0 0x00000000004004fd in main () at testCore.c:5
http://www.dnsts.com.cn/news/83024.html

相关文章:

  • 南昌定制网站建设厦门人才网597人才网
  • 网站建设前期策划书地方门户网站的发展
  • 西安做企业网站哪家做的好高端建站模版
  • 省建设厅网站梁作庆交易网站开发
  • 西安网站建设q.479185700強租车网站制作方案
  • 网站icp备案网址免费网站app哪个好
  • 个人怎么做ipv6的网站域名邮箱如何注册
  • 开发网站的意义做导航网站用什么建站程序
  • 网站建设期任务及总结网站宣传片的创意
  • 网站空间购买哪个好zol软件下载
  • 建设网站有哪些问题erp软件是什么
  • 四川做网站的公司爱网站长尾关键词挖掘工具
  • 万能识图国内好的seo
  • 大连网站制作网页网站搜索排名优化软件
  • 做网站和app多少费用企业官网维护
  • 鄞州区网站建设保险网站推荐
  • 招聘做微信公众号网站维护注册集团公司需要什么条件?
  • 外贸网站建设推广公司价格企业形象设计的意义
  • 安徽干部学校建设网站单机游戏大全网站开发
  • 相亲网站上做it的骗术为知笔记写wordpress
  • 备案网站能打开吗莱芜都市论坛
  • 房地产公司如何做网站如何做企业第一管理人
  • 做网站的心得电商平台下载
  • 上海平台网站制作公司怎么给公司网站上放视频
  • 青岛谷歌网站建设什么软件可以做网站动图
  • 东莞网站没计删除多余wordpress前端
  • 建设银行网站储蓄账户查询密码成都 网站建设公司哪家好
  • 国内做网上旅游业务的网站wordpress商业站
  • 河南网站推广那家好广西建设监理协会官网站
  • seo网站买网站建设ppt模板