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

单品商城网站源码wordpress问答插件中文免费版

单品商城网站源码,wordpress问答插件中文免费版,南昌地宝网首页,翻译网页gdb调试教程 快速入门 要想快速入门gdb调试#xff0c;可以直接翻阅基本案例#xff1a;采内存 介绍 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c/c程序员#xff0c;gdb是必不可少的工具 …gdb调试教程 快速入门 要想快速入门gdb调试可以直接翻阅基本案例采内存 介绍 GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c/c程序员gdb是必不可少的工具 常用指令 shell 指令 指令用法介绍gdbgdb ${exe}对生成的可执行文件进行调试gdb -qgdb -q ${exe}对生成的可执行文件进行调试表示不打印gdb版本信息界面较为干净 gdb指令 指令用法介绍断点设置breakbreak Linebrbreak{Line}brbreak Linebrbreak{func}可以对行号和函数进行设置断点程序运行runrun / r首次运行程序运行到第一个断点continuecontinue / c继续运行程序运行到下一个断点nextnext / n单步跳过执行一步程序遇到函数直接完成函数操作不会进入函数stepstep / s单步进入执行一步程序遇到函数会进入untiluntil / u ${Line}跳出循环体并跳到循环体外部的某一行变量查看printprint 变量打印变量的值whatiswhatis 变量打印变量的类型quitquit / q退出可视化layout src调试的时候同时显示源代码窗口但是必须run之后才会显示 基本案例采内存 0. 源码 本案例以下文段错误采内存源码进行介绍如何进行gdb调试。 通常在复杂程序调用中指针的操作容易导致编程人员对内存空间的使用造成困扰和混乱因此指针操作是导致内存异常问题最为常见的因素也是最难定位的因素。 源代码如下 在本案例中main函数里的my_user指针在addUser函数里进行资源申请。虽然成功申请到了堆中的空间。但是因为my_user是作为参数传入因此在函数返回时my_user又重新指向了NULL而非堆上的空间地址导致运行发生段错误。 #include stdio.h #include stdlib.htypedef struct User {int id;int age; } User;void addUser(User *user, int id, int age) {user (User *)malloc(sizeof(User));user-id id;user-age age;printf(id %d, age %d\n, user-id, user-age); }int main() {printf(gdb demo\n);User *my_user NULL;addUser(my_user, 10, 20);printf(id %d, age %d\n, my_user-id, my_user-age);return 0; }1. 编译 要想使用gdb调试功能需要在gcc编译器添加-g参数或者在cmake里编译成debug模式。 gcc -g -o main main.c2. 打开gdb调试 gdb main gdb -q main # 表示不打印gdb版本信息界面较为干净3. gdb 设置断点 breakinfo breakpoints # 使用 break 或者 b 进行设置断点。 # 可以对函数进行打点或者对代码行进行打点。 # 我们可以使用info breakpoints查看当前所有的断点信息 (gdb) b addUser Breakpoint 1 at 0x752: file gdb_test.c, line 11. (gdb) b 13 Breakpoint 2 at 0x769: file gdb_test.c, line 13. (gdb) b 20 Breakpoint 3 at 0x7aa: file gdb_test.c, line 20. (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x0000000000000752 in addUser at gdb_test.c:11 2 breakpoint keep y 0x0000000000000769 in addUser at gdb_test.c:13 3 breakpoint keep y 0x00000000000007aa in main at gdb_test.c:20 4. 运行 runcontinuenextstep # 当我们设置完断点进行调试的时候首先要执行run函数开启程序进程run会执行到第一个断点位置 # 然后我们可以执行next 或者 continue 或者 step进行推进程序 # continue: 运行到下一个断点 # next: 单步跳过执行一步程序遇到函数直接完成函数操作不会进入函数 # step: 单步进入执行一步程序遇到函数会进入 (gdb) run Starting program: /home/rodney/ProjectCode/Cproject/C_coding/gccggdb_block/bug1/main gdb demoBreakpoint 3, main () at gdb_test.c:20 20 User *my_user NULL; (gdb) n 22 addUser(my_user, 10, 20); (gdb) c Continuing.Breakpoint 1, addUser (user0x0, id10, age20) at gdb_test.c:11 11 user (User *)malloc(sizeof(User));(gdb) c Continuing.Breakpoint 2, addUser (user0x555555756420, id10, age20) at gdb_test.c:13 13 user-age age;(gdb) n 14 printf(id %d, age %d\n, user-id, user-age); (gdb) n id 10, age 20 15 } (gdb) n main () at gdb_test.c:23 23 printf(id %d, age %d\n, my_user-id, my_user-age); (gdb) nProgram received signal SIGSEGV, Segmentation fault. 0x00005555555547cc in main () at gdb_test.c:23 23 printf(id %d, age %d\n, my_user-id, my_user-age); 从上文可以看出是23行打印发生了报错那么如何确定23行的打印发生了什么具体错误可以使用print和whatis进行打印显示。 5. 打印和显示变量信息 print 打印变量的值whatis 打印变量的类型 # 从打印的信息可以看出这里my_user是个空指针因此访问出现上文的段错误。 (gdb) whatis my_user type User * (gdb) whatis my_user-id type int (gdb) print my_user $1 (User *) 0x0 (gdb) print my_user-id Cannot access memory at address 0x0
http://www.zqtcl.cn/news/277599/

相关文章:

  • wordpress成长记录网站模版市场推广方案ppt
  • 外贸网站建设560wordpress 在线音乐播放器
  • 大连哪里有手机自适应网站建设维护交互式网站开发技术asp
  • 潍坊做网站多少钱个人业务网站带后台
  • 网站建设灬金手指科杰全部游戏免费(试玩)
  • 石家庄网站设计宜昌市住房和城乡建设局网站
  • 商城型企业网站的功能中山市中国建设银行网站
  • 公司做网站那个网站好网站推广seo方法
  • 赣州制作网站百度贵州icp网站备案中心
  • 阿里云域名如何做网站如何查询网站快照
  • 温州市城乡建设厅网站首页有没有做网站的多少钱
  • 网站建设实训报告建议缘震网络网站建设之f套餐
  • 网上免费注册qq网站wordpress怎么发布网站
  • 网站没有根目录国内互联网建站公司排名
  • 做网站需要架构师吗鞍山贴吧最新消息
  • 大连网站关键词推广网站建设合同报价
  • 网站维护费用一年多少广州h5网站建设
  • 如何搭建静态网站源码手机开发软件app的工具
  • 之前做的网站推广怎么删除专业做网站官网
  • 泉州做 php 网站宁波信息港
  • 网站建设专员招聘如何建立网站会员系统
  • 佛山网站关键词自助建站教程
  • 海口网站seo做网站域名后缀选择
  • 网站建设新手看什么书网络营销推广师
  • 小浣熊做单网站观看床做视频网站
  • 网站版面布局结构图门户网站要求
  • 网站左侧广告代码网站建设交接协议书
  • dedecms网站上传华为网络营销案例分析
  • wordpress搭建站点龙岗网站建设代理商
  • 做销售网站要多少钱建立网站的流程