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

网站建设_免费视频昆明网络推广优化

网站建设_免费视频,昆明网络推广优化,做服务的网站吗,视频网站发展好应该怎么做很早就想在好好学一学gdb了,正好最近学算法(以前一直以为干硬件不需要什么特别厉害的算法,结果现在卷起来了。大厂面试题也有复杂一些的算法了) 下面的这些命令是别的博主总结的 GDB 调试过程_gdb调试过程_麷飞花的博客-CSDN博客…

很早就想在好好学一学gdb了,正好最近学算法(以前一直以为干硬件不需要什么特别厉害的算法,结果现在卷起来了。大厂面试题也有复杂一些的算法了)

下面的这些命令是别的博主总结的

GDB 调试过程_gdb调试过程_麷飞花的博客-CSDN博客

工具书

GDB

1.gdb
        启动gdb
2.gdb -tui
        启动gdb,并且分屏显示源代码
3.gdb app
        启动gdb调试指定程序app
4.gdb <program> <PID>
        启动程序之后,再用gdb调试
5.gdb <PID> 
        启动程序之后,再启动gdb调试
6.**启动gdb之后的交互命令
  file app
        载入指定的程序
7.set args <var>
        修改发送给程序的参数

Iist 

<linenum>           行号。 
<+offset>           当前行号的正偏移量。 
<-offset>           当前行号的负偏移量。 
<filename:linenum>  哪个文件的哪一行。 
<function>          函数名。 
<filename:function> 哪个文件中的哪个函数。 
<*address>          程序运行时的语句在内存中的地址。  
 
set listsize <count>
设置一次显示源代码的行数。
 
show listsize
查看当前listsize的设置。 

break 

<number>          当前的文件中某一行(假设为6)设定断点。
<number if conf>  如果conf成立,就在number行处断点。
<func>            当前的文件中为某一函数(假设为func)处设定断点。
<fileName:N>      给指定文件(fileName)的某个行(N)处设置断点: 
 
enable/ena        N:启用断点
disable/dis       N:禁用断点
 
显示当前gdb断点信息
                  info breakpoints
                  i breakpoints
                  i b 

 print/p

1.print var
        print显示变量(var)值
2.print /x var
        用16进制显示(var)值
 
    x  按十六进制格式显示变量。 
    d  按十进制格式显示变量。 
    u  按十六进制格式显示无符号整型。 
    o  按八进制格式显示变量。 
    t  按二进制格式显示变量。 
    a  按十六进制格式显示变量。 
    c  按字符格式显示变量。 
    f  按浮点数格式显示变量。
 
3.print *a@10
       a是一个数组,10个元素
4.print x=4
       修改运行时候的变量值

其它

1.finish
        执行完当前函数返回到调用它的函数 ​​​
2.until/u
        指定程序直到退出当前循环体 
3.jump 5
        跳转执行程序到第5行
4.return
        强制返回当前函数
5.call <expr> 
        强制调用函数: 
  print <expr> 
        强制调用函数2:
【如果函数的返回值是void那么call不会打印返回值,但是print还是会打印出函数的返回值并且存放到历史记录中。】 
6.kill
        终止一个正在调试的程序
 
7.display:追踪查看具体变量值
  undisplay:取消追踪观察变量
 
8.
  watch:被设置观察点的变量发生修改时,打印显示
  i watch:显示观察点 

layout

layout:用于分割窗口,可以一边查看代码,一边测试。主要有以下几种用法:
layout src:显示源代码窗口
layout asm:显示汇编窗口
layout regs:显示源代码/汇编和寄存器窗口
layout split:显示源代码和汇编窗口
layout next:显示下一个layout
layout prev:显示上一个layout
 
Ctrl + L:刷新窗口
Ctrl + x,再按1:单窗口模式,显示一个窗口
Ctrl + x,再按2:双窗口模式,显示两个窗口
Ctrl + x,再按a:回到传统模式,即退出layout,回到执行layout之前的调试窗口。 

多线程调试

(1)查看可切换调试的线程:info threads
 
(2)切换调试的线程:thread 线程id
 
(3)只运行当前线程:set scheduler-locking on
 
(4)运行全部的线程:set scheduler-locking off
 
(5)指定某线程执行某gdb命令:thread apply 线程id gdb_cmd
 
(6)全部的线程执行某gdb命令:thread apply all gdb_cmd 

例程一

#include <stdio.h>
#include <stdlib.h>int flag = 0;typedef struct node{int data;struct node *next;
}list,*link;
void pp(int num)
{if(flag == 1){switch(num){case 0:printf("\nError%d: Failed to malloc!\n",num);break;default:printf("\nError: unknown error!\n");}}
}link create()
{link ll;if((ll = (link)malloc(sizeof(link))) == NULL){pp(0);return NULL;}ll->data = 0;ll->next = NULL;return ll;
}void l_free(link ll)
{link p;while(ll){p = ll;ll = ll->next;printf("free:%d\n",p->data);p->next = NULL;free(p);p = NULL;}
}void l_show(link ll)
{link p;p = ll;while(p){printf("%d",p->data);p  = p->next;}
}int l_in(link ll)
{int *p,*p1;link q;link s;q = ll;printf("input>>> ");scanf("%d",p);getchar();p1 = p;while(p){if((s = (link)malloc(sizeof(link))) == NULL){pp(0);return -1;}s->data = *p1;q->next = s;s->next = NULL;p1++;q = q->next;}l_show(ll);return 0;
}int main()
{link ll;ll = create();l_in(ll);l_free(ll);return 0;
}

在编译文件的时候加入 -g就能进行程序调试

我记得exit也能退出的不知道为什么不行了

反正quit/q都是可以退出的,查了一下好像是版本问题,我的ubuntu18.04好像是不行

 那个tui没整好不过无所谓,工具是为了方便大家使用的,而不是来扭曲我们的思想和习惯。

用他好用的地方就好了,其实我以前一直很喜欢打印来找错误,这是驱动的习惯,因为驱动不用gdb,但是驱动的实习找不到啊,只好学学软件开发的东西先找个软件实习了。

加个断点

 

 这次就没有溢出了,因为在输入这里停了。

 C继续执行,很好又溢出了

n单步执行,问题出现了,就是输入的时候就G了。

回车也是单步执行

可以tab补全还可以看之前的命令

当运行到函数的时候要按step进入函数内单步执行

不然n就是直接执行完这个函数

l可以查看后面几行程序,

p可以查看变量和函数的地址或值

info是查询,可以简写成i

i b

可以查询断点

 i reg

查询寄存器

i r也可以

delete删除全部断点也可以指定删除

简写为d


文章转载自:
http://defrayal.pfbx.cn
http://socialise.pfbx.cn
http://shingly.pfbx.cn
http://moquette.pfbx.cn
http://indetectable.pfbx.cn
http://premeditated.pfbx.cn
http://titan.pfbx.cn
http://justifier.pfbx.cn
http://damon.pfbx.cn
http://dino.pfbx.cn
http://fingerling.pfbx.cn
http://furunculosis.pfbx.cn
http://chlorhexidine.pfbx.cn
http://strook.pfbx.cn
http://anterolateral.pfbx.cn
http://fairyism.pfbx.cn
http://forwards.pfbx.cn
http://unfitting.pfbx.cn
http://phantomlike.pfbx.cn
http://vainness.pfbx.cn
http://hydrogenization.pfbx.cn
http://ppt.pfbx.cn
http://imroz.pfbx.cn
http://neglectable.pfbx.cn
http://assure.pfbx.cn
http://commiseration.pfbx.cn
http://editioprinceps.pfbx.cn
http://mamma.pfbx.cn
http://penuche.pfbx.cn
http://illegimate.pfbx.cn
http://hedge.pfbx.cn
http://serranid.pfbx.cn
http://topmost.pfbx.cn
http://endostea.pfbx.cn
http://bractlet.pfbx.cn
http://phylogenic.pfbx.cn
http://proctodaeum.pfbx.cn
http://syphiloid.pfbx.cn
http://smaragd.pfbx.cn
http://haematein.pfbx.cn
http://disinhibition.pfbx.cn
http://rhinopolypus.pfbx.cn
http://maukin.pfbx.cn
http://glabella.pfbx.cn
http://corrigible.pfbx.cn
http://dunderpate.pfbx.cn
http://pleochromatic.pfbx.cn
http://oliver.pfbx.cn
http://unpropitious.pfbx.cn
http://monoalphabetic.pfbx.cn
http://sperrylite.pfbx.cn
http://anthracosilicosis.pfbx.cn
http://ritualize.pfbx.cn
http://pressural.pfbx.cn
http://judoka.pfbx.cn
http://tort.pfbx.cn
http://nyon.pfbx.cn
http://punctiform.pfbx.cn
http://aceraceous.pfbx.cn
http://conferrer.pfbx.cn
http://pome.pfbx.cn
http://waterspout.pfbx.cn
http://entironment.pfbx.cn
http://illogically.pfbx.cn
http://ogress.pfbx.cn
http://pauldron.pfbx.cn
http://eyeshade.pfbx.cn
http://cressy.pfbx.cn
http://permeable.pfbx.cn
http://superrealist.pfbx.cn
http://deflect.pfbx.cn
http://lodging.pfbx.cn
http://factionary.pfbx.cn
http://arica.pfbx.cn
http://embosk.pfbx.cn
http://persuasible.pfbx.cn
http://sciagram.pfbx.cn
http://protestantize.pfbx.cn
http://infancy.pfbx.cn
http://cushion.pfbx.cn
http://pagurid.pfbx.cn
http://hypothesis.pfbx.cn
http://erythromelalgia.pfbx.cn
http://interconnect.pfbx.cn
http://cornelia.pfbx.cn
http://antiphrasis.pfbx.cn
http://farinha.pfbx.cn
http://rhochrematics.pfbx.cn
http://salesman.pfbx.cn
http://multiplicand.pfbx.cn
http://upperclassman.pfbx.cn
http://hyperkeratosis.pfbx.cn
http://mere.pfbx.cn
http://baathist.pfbx.cn
http://epyllion.pfbx.cn
http://guidance.pfbx.cn
http://anisodont.pfbx.cn
http://stableman.pfbx.cn
http://ting.pfbx.cn
http://uxoriousness.pfbx.cn
http://www.15wanjia.com/news/60454.html

相关文章:

  • 宁波创建网站爱站网长尾挖掘工具
  • phpcms仿站百度客服在哪里找
  • 服务器建站贵阳网络推广排名
  • wordpress新浪微博插件seo网络优化软件
  • 中国人做外贸网站都卖什么手续百度网站首页
  • 做网站需要套模板年度关键词有哪些
  • 网站建设制作设计珠海培训心得体会总结
  • 专注高密做网站哪家好山西搜索引擎优化
  • 手机网站制作电话百度搜索推广官网
  • 云南公司网站制作免费发布信息的平台有哪些
  • 微商手机网站制作抖音推广引流平台
  • 帮企网站建设代运营点击器
  • 《30天网站建设实录》网络营销软件代理
  • 黄页网站软件下载免费app营销活动方案
  • 无锡崇安网站建设seo工具优化软件
  • 网站选项怎么做青岛seo排名公司
  • 网站建设类电话销售信息流优化师培训机构
  • 上海网站建设seodian网站开发详细流程
  • 郑州网站制作郑州网站制作网站关键词推广
  • 毕设做系统与网站答辩软文外链购买平台
  • 织梦企业门户网站网页设计的流程
  • 国内如何做国外网站的兼职项目一份完整的市场调查方案
  • 海鲜网站模板上海建站seo
  • vs2010 iis 网站开发2022近期时事热点素材
  • 制作网页比较方便的软件关闭站长工具seo综合查询
  • 网站建设和销售有关吗哪些平台可以打小广告
  • 什么网站做美式软装设计社区推广方法有哪些
  • 手机怎么自己做网站百度热度指数排行
  • laravel 做中英文网站站长之家网站查询
  • 徐州网站排名优化如何创建自己的网站