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

做车展的网站网页设计与网站建设完全实战手册

做车展的网站,网页设计与网站建设完全实战手册,网页设计首页尺寸,团购网站怎么做GDB调试 启动程序准备调试 GDB yourpram 或者 先输入GDB 然后输入 file yourpram然后使用run或者r命令开始程序的执行,也可以使用 run parameter将参数传递给该程序参数列表  命令 命令缩写 命令说明 list l 显示多行源代码 break b 设置断点,程序运行到断点的位置会停… GDB调试 启动程序准备调试 GDB yourpram 或者 先输入GDB 然后输入 file yourpram然后使用run或者r命令开始程序的执行,也可以使用 run parameter将参数传递给该程序参数列表  命令 命令缩写 命令说明 list l 显示多行源代码 break b 设置断点,程序运行到断点的位置会停下来 info i 描述程序的状态 run r 开始运行程序 display disp 跟踪查看某个变量,每次停下来都显示它的值 step s 执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句 next n 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句) print p 打印内部变量值 continue c 继续程序的运行,直到遇到下一个断点 set var namev   设置变量的值 start st 开始执行程序,在main函数的第一条语句前面停下来 file   装入需要调试的程序 kill k 终止正在调试的程序 watch   监视变量值的变化 backtrace bt 产看函数调用信息(堆栈) frame f 查看栈帧 quit q 退出GDB环境               //e.c#include stdio.h void debug(char *str) {printf(debug info :%s\n,str ); } main(int argc,char *argv[]){int i,j;j0;for(i0;i10;i){j5;printf(now a%d\n, j);} }gcc -g -o e e.c调试gdb e或者输入gdb然后 file e list 命令用法 list命令显示多行源代码,从上次的位置开始显示,默认情况下,一次显示10行,第一次使用时,从代码其实位置显示 gdb) list#include stdio.hvoid debug(char *str){printf(debug info :%s\n,str );}main(int argc,char *argv[]){int i,j;j0;for(i0;i10;i){j5; (gdb) list n显示已第n行未中心的10行代码 (gdb) list 8 3 { 4 printf(debug info :%s\n,str ); 5 } 6 main(int argc,char *argv[]){ 7 int i,j; 8 j0; 9 for(i0;i10;i){ 10 j5; 11 printf(now a%d\n, j); 12 } (gdb) list functionname显示以functionname的函数为中心的10行代码 (gdb) list main 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 main(int argc,char *argv[]){ 7 int i,j; 8 j0; 9 for(i0;i10;i){ 10 j5; (gdb) list - 显示刚才打印过的源代码之前的代码 (gdb) list 10 5 } 6 main(int argc,char *argv[]){ 7 int i,j; 8 j0; 9 for(i0;i10;i){ 10 j5; 11 printf(now a%d\n, j); 12 } 13 }(gdb) list - 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); (gdb) 断点命令breakbreak location:在location位置设置断点,改位置可以为某一行,某函数名或者其它结构的地址GDB会在执行该位置的代码之前停下来 gdb) list 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 main(int argc,char *argv[]){ 7 int i,j; 8 j0; 9 for(i0;i10;i){ 10 j5; (gdb) 11 printf(now a%d\n, j); 12 } 13 }(gdb) break 10 Breakpoint 1 at 0x40050a: file e.c, line 10. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e Breakpoint 1, main (argc1, argv0x7fffffffe548) at e.c:10 10 j5; (gdb) c Continuing. now a5Breakpoint 1, main (argc1, argv0x7fffffffe548) at e.c:10 10 j5; (gdb) c Continuing. now a10Breakpoint 1, main (argc1, argv0x7fffffffe548) at e.c:10 10 j5; (gdb) 使用delete breakpoints 断点号 删除断点这里的断点号表示的是第几个断点,刚才执行break 10返回 reakpoint 1 at 0x40050a: file e.c, line 10.中的1表示该断点的标号因此使用 delete breakpoints 1表示删除第10行所定义的断点clear n表示清除第n行的断点,因此clear 10等同于delete breakpoints 1disable/enable n表示使得编号为n的断点暂时失效或有效可使用info查看断点相关的信息info breakpoints  gdb) info breakpoints No breakpoints or watchpoints. (gdb) break 10 Breakpoint 2 at 0x40050a: file e.c, line 10. (gdb) break 9 Breakpoint 3 at 0x400501: file e.c, line 9. (gdb) info breakpoints Num Type Disp Enb Address What 2 breakpoint keep y 0x000000000040050a in main at e.c:10 3 breakpoint keep y 0x0000000000400501 in main at e.c:9display命令查看参数的值   (gdb) break 10 Breakpoint 1 at 0x40050a: file e.c, line 10. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e Breakpoint 1, main (argc1, argv0x7fffffffe548) at e.c:10 10 j5; (gdb) display j 1: j 0 (gdb) c Continuing. now a5Breakpoint 1, main (argc1, argv0x7fffffffe548) at e.c:10 10 j5; 1: j 5 (gdb) display 1: j 5 (gdb) display i 2: i 1 (gdb) display j 3: j 5 (gdb) display j*2 4: j*2 10 (gdb) info display Auto-display expressions now in effect: Num Enb Expression 4: y j*2 3: y j 2: y i 1: y j也可以使用disable,enable,delete,info命令修改及查看其状态,用法与对断点的一样 step及next命令step可使得程序逐条执行,即执行完一条语句然后在吓一跳语句前停下来,等待用户的命令一般使用step命令是可使用display或者watch命令查看变量的变化,从而判断程序行为是否符合要求当下一条指令为函数时,s进入函数内部,在其第一条语句前停下来step n,next n 表示连续但不执行n条指令,如果期间遇到断点,则停下来 (gdb) list 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 7 main(int argc,char *argv[]){ 8 int i,j; 9 j0; 10 for(i0;i10;i){ (gdb) 11 j5; 12 printf(now j%d\n, j); 13 debug(xx); 14 } 15 }(gdb) Line number 16 out of range; e.c has 15 lines. (gdb) break 11 Breakpoint 1 at 0x40050a: file e.c, line 11. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e1 Breakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:11 11 j5; (gdb) s 12 printf(now j%d\n, j); (gdb) s __printf (format0x400648 now j%d\n) at printf.c:30 30 { (gdb) bt #0 __printf (format0x400648 now j%d\n) at printf.c:30 #1 0x0000000000400525 in main (argc1, argv0x7fffffffe538) at e.c:12 (gdb) n 34 va_start (arg, format); (gdb) n 35 done vfprintf (stdout, format, arg); (gdb) n now j5 39 } (gdb) bt #0 __printf (formatvalue optimized out) at printf.c:39 #1 0x0000000000400525 in main (argc1, argv0x7fffffffe538) at e.c:12 (gdb) n main (argc1, argv0x7fffffffe538) at e.c:13 13 debug(xx); (gdb) n debug info :xx 10 for(i0;i10;i){ (gdb) sBreakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:11 11 j5; (gdb) s 12 printf(now j%d\n, j); (gdb) n now j10 13 debug(xx); (gdb) n debug info :xx 10 for(i0;i10;i){ (gdb) watchwatch可设置观察点(watchpoint)。使用观察点可以使得当某表达式的值发生变化时,程序暂停执行。执行该命令前必须保证程序已经运行 (gdb) list 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 7 main(int argc,char *argv[]){ 8 int i,j; 9 j0; 10 for(i0;i10;i){ (gdb) 11 j5; 12 printf(now j%d\n, j); 13 debug(xx); 14 } 15 }(gdb) Line number 16 out of range; e.c has 15 lines. (gdb) b main Breakpoint 1 at 0x4004fa: file e.c, line 9. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e1 Breakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:9 9 j0; (gdb) watch j Hardware watchpoint 2: j (gdb) c Continuing. Hardware watchpoint 2: jOld value 0 New value 5 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j5 debug info :xx Hardware watchpoint 2: jOld value 5 New value 10 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j);print命令 (gdb) list 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 7 main(int argc,char *argv[]){ 8 int i,j; 9 j0; 10 for(i0;i10;i){ (gdb) 11 j5; 12 printf(now j%d\n, j); 13 debug(xx); 14 } 15 }(gdb) Line number 16 out of range; e.c has 15 lines. (gdb) break 12 Breakpoint 1 at 0x40050e: file e.c, line 12. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e1 Breakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) p j $1 5 (gdb) c Continuing. now j5 debug info :xxBreakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) p i,j $2 10 (gdb) p j $3 10 (gdb) set var namevalue在程序运行中动态改变变量的值 (gdb) list 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 7 main(int argc,char *argv[]){ 8 int i,j; 9 j0; 10 for(i0;i10;i){ (gdb) 11 j5; 12 printf(now j%d\n, j); 13 debug(xx); 14 } 15 }(gdb) Line number 16 out of range; e.c has 15 lines. (gdb) break main Breakpoint 1 at 0x4004fa: file e.c, line 9. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e1 Breakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:9 9 j0; (gdb) watch i Hardware watchpoint 2: i (gdb) watch j Hardware watchpoint 3: j (gdb) c Continuing. Hardware watchpoint 3: jOld value 0 New value 5 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j5 debug info :xx Hardware watchpoint 2: iOld value 0 New value 1 0x0000000000400533 in main (argc1, argv0x7fffffffe538) at e.c:10 10 for(i0;i10;i){ (gdb) c Continuing. Hardware watchpoint 3: jOld value 5 New value 10 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j10 debug info :xx Hardware watchpoint 2: iOld value 1 New value 2 0x0000000000400533 in main (argc1, argv0x7fffffffe538) at e.c:10 10 for(i0;i10;i){ (gdb) c Continuing. Hardware watchpoint 3: jOld value 10 New value 15 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j15 debug info :xx Hardware watchpoint 2: iOld value 2 New value 3 0x0000000000400533 in main (argc1, argv0x7fffffffe538) at e.c:10 10 for(i0;i10;i){ (gdb) c Continuing. Hardware watchpoint 3: jOld value 15 New value 20 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j20 debug info :xx Hardware watchpoint 2: iOld value 3 New value 4 0x0000000000400533 in main (argc1, argv0x7fffffffe538) at e.c:10 10 for(i0;i10;i){ (gdb) set var i8 (gdb) c Continuing. Hardware watchpoint 3: jOld value 20 New value 25 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j25 debug info :xx Hardware watchpoint 2: iOld value 8 New value 9 0x0000000000400533 in main (argc1, argv0x7fffffffe538) at e.c:10 10 for(i0;i10;i){ (gdb) c Continuing. Hardware watchpoint 3: jOld value 25 New value 30 main (argc1, argv0x7fffffffe538) at e.c:12 12 printf(now j%d\n, j); (gdb) c Continuing. now j30 debug info :xx Hardware watchpoint 2: iOld value 9 New value 10 0x0000000000400533 in main (argc1, argv0x7fffffffe538) at e.c:10 10 for(i0;i10;i){ (gdb) c Continuing.Watchpoint 2 deleted because the program has left the block in which its expression is valid.Watchpoint 3 deleted because the program has left the block in which its expression is valid. __libc_start_main (main0x4004eb main, argc1, ubp_av0x7fffffffe538, initvalue optimized out, finivalue optimized out, rtld_finivalue optimized out, stack_end0x7fffffffe528) at libc-start.c:258 258 exit (result); (gdb) c Continuing.Program exited with code 026.函数调用相关的backtrace可使用frame 查看堆栈中某一帧的信息 (gdb) list 1 #include stdio.h 2 void debug(char *str) 3 { 4 printf(debug info :%s\n,str ); 5 } 6 7 main(int argc,char *argv[]){ 8 int i,j; 9 j0; 10 for(i0;i10;i){ (gdb) 11 j5; 12 printf(now j%d\n, j); 13 debug(xx); 14 } 15 }(gdb) Line number 16 out of range; e.c has 15 lines. (gdb) b 13 Breakpoint 1 at 0x400525: file e.c, line 13. (gdb) r Starting program: /mnt/hgfs/www/c/gcc/e1 now j5Breakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:13 13 debug(xx); (gdb) s debug (str0x400652 xx) at e.c:4 4 printf(debug info :%s\n,str ); (gdb) bt #0 debug (str0x400652 xx) at e.c:4 #1 0x000000000040052f in main (argc1, argv0x7fffffffe538) at e.c:13 (gdb) s __printf (format0x400638 debug info :%s\n) at printf.c:30 30 { (gdb) bt #0 __printf (format0x400638 debug info :%s\n) at printf.c:30 #1 0x00000000004004e9 in debug (str0x400652 xx) at e.c:4 #2 0x000000000040052f in main (argc1, argv0x7fffffffe538) at e.c:13 (gdb) s 34 va_start (arg, format); (gdb) bt #0 __printf (format0x400638 debug info :%s\n) at printf.c:34 #1 0x00000000004004e9 in debug (str0x400652 xx) at e.c:4 #2 0x000000000040052f in main (argc1, argv0x7fffffffe538) at e.c:13 (gdb) s 35 done vfprintf (stdout, format, arg); (gdb) s _IO_vfprintf_internal (s0x333a58f040, format0x400638 debug info :%s\n, ap0x7fffffffe330) at vfprintf.c:236 236 int save_errno errno; (gdb) bt #0 _IO_vfprintf_internal (s0x333a58f040, format0x400638 debug info :%s\n, ap0x7fffffffe330) at vfprintf.c:236 #1 0x000000333a24effa in __printf (formatvalue optimized out) at printf.c:35 #2 0x00000000004004e9 in debug (str0x400652 xx) at e.c:4 #3 0x000000000040052f in main (argc1, argv0x7fffffffe538) at e.c:13 (gdb) c Continuing. debug info :xx now j10Breakpoint 1, main (argc1, argv0x7fffffffe538) at e.c:13 13 debug(xx); (gdb) bt #0 main (argc1, argv0x7fffffffe538) at e.c:13  转载于:https://www.cnblogs.com/yuanqiangfei/p/10410533.html
http://www.sadfv.cn/news/33902/

相关文章:

  • 网站如何注销美术教师网站建设心得体会
  • 四川住房和城乡建设厅网站首页优秀flash网站设计
  • 网站重构南宁seo诊断
  • 建设银行+贷款+查询+网站98建筑人才网
  • 宁波外贸网站设计公司wordpress 站长统计插件
  • 网站制作平台能赚钱吗代理一款网页游戏需要多少钱
  • 网站开发的主要技术经典网站建设
  • 网站主页面设计多少钱品牌网站建设新闻
  • 去年做哪些网站能致富全球交流软件app
  • wordpress 收费 视频优化网站seo公司
  • 在京东上怎样做网站客户管理系统源代码
  • 南京 网站建站湖南省郴州市天气
  • 网页制作官方网站公司最近想做个网站怎么办
  • c 网站做微信收款功能西宁网站制作费用是多少钱
  • 网站开辟两学一做专栏建站哪家好论坛
  • 惠州手机模板建站小的外贸公司值得去吗
  • 建设田达摩托车官方网站织梦网站有会员系统怎么做
  • wordpress 首页位置佛山网站推广优化公司
  • 网站空间在那里买房产集团公司网站建设方案
  • 创意网站开发wordpress登陆过程
  • 网站建设行业资讯长沙企业建站销售电话
  • 找公司网站建设ih5网页设计
  • 营销网站资讯类网站怎么做
  • 广州建设水务局网站网站设计范文
  • 政务网站源码东坑镇仿做网站
  • 网站宽度设置网页设计相关书籍
  • 注册网站不用手机短信验证的网站怎么把做的网站上传到网络
  • 创建论坛网站d84 wordpress
  • 建设网站的基本步骤网页设计师月薪
  • 免费域名网站推荐做平台好还是做网站好