中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)_免費(fèi)視頻武漢剛剛突然宣布

網(wǎng)站建設(shè)_免費(fèi)視頻,武漢剛剛突然宣布,可以免費(fèi)做推廣的網(wǎng)站,查公司的口碑和評價(jià)的網(wǎng)站很早就想在好好學(xué)一學(xué)gdb了,正好最近學(xué)算法(以前一直以為干硬件不需要什么特別厲害的算法,結(jié)果現(xiàn)在卷起來了。大廠面試題也有復(fù)雜一些的算法了) 下面的這些命令是別的博主總結(jié)的 GDB 調(diào)試過程_gdb調(diào)試過程_麷飛花的博客-CSDN博客…

很早就想在好好學(xué)一學(xué)gdb了,正好最近學(xué)算法(以前一直以為干硬件不需要什么特別厲害的算法,結(jié)果現(xiàn)在卷起來了。大廠面試題也有復(fù)雜一些的算法了)

下面的這些命令是別的博主總結(jié)的

GDB 調(diào)試過程_gdb調(diào)試過程_麷飛花的博客-CSDN博客

工具書

GDB

1.gdb
? ? ? ? 啟動(dòng)gdb
2.gdb -tui
? ? ? ? 啟動(dòng)gdb,并且分屏顯示源代碼
3.gdb app
? ? ? ? 啟動(dòng)gdb調(diào)試指定程序app
4.gdb <program> <PID>
? ? ? ? 啟動(dòng)程序之后,再用gdb調(diào)試
5.gdb <PID>?
? ? ? ? 啟動(dòng)程序之后,再啟動(dòng)gdb調(diào)試
6.**啟動(dòng)gdb之后的交互命令
? file app
? ? ? ? 載入指定的程序
7.set args <var>
? ? ? ? 修改發(fā)送給程序的參數(shù)

Iist?

<linenum> ? ? ? ? ? 行號。?
<+offset> ? ? ? ? ? 當(dāng)前行號的正偏移量。?
<-offset> ? ? ? ? ? 當(dāng)前行號的負(fù)偏移量。?
<filename:linenum> ?哪個(gè)文件的哪一行。?
<function> ? ? ? ? ?函數(shù)名。?
<filename:function> 哪個(gè)文件中的哪個(gè)函數(shù)。?
<*address> ? ? ? ? ?程序運(yùn)行時(shí)的語句在內(nèi)存中的地址。 ?
?
set listsize <count>
設(shè)置一次顯示源代碼的行數(shù)。
?
show listsize
查看當(dāng)前l(fā)istsize的設(shè)置。?

break?

<number> ? ? ? ? ?當(dāng)前的文件中某一行(假設(shè)為6)設(shè)定斷點(diǎn)。
<number if conf> ?如果conf成立,就在number行處斷點(diǎn)。
<func> ? ? ? ? ? ?當(dāng)前的文件中為某一函數(shù)(假設(shè)為func)處設(shè)定斷點(diǎn)。
<fileName:N> ? ? ?給指定文件(fileName)的某個(gè)行(N)處設(shè)置斷點(diǎn):?
?
enable/ena ? ? ? ?N:啟用斷點(diǎn)
disable/dis ? ? ? N:禁用斷點(diǎn)
?
顯示當(dāng)前gdb斷點(diǎn)信息
? ? ? ? ? ? ? ? ? info breakpoints
? ? ? ? ? ? ? ? ? i breakpoints
? ? ? ? ? ? ? ? ? i b?

?print/p

1.print var
? ? ? ? print顯示變量(var)值
2.print /x var
? ? ? ? 用16進(jìn)制顯示(var)值
?
? ? x ?按十六進(jìn)制格式顯示變量。?
? ? d ?按十進(jìn)制格式顯示變量。?
? ? u ?按十六進(jìn)制格式顯示無符號整型。?
? ? o ?按八進(jìn)制格式顯示變量。?
? ? t ?按二進(jìn)制格式顯示變量。?
? ? a ?按十六進(jìn)制格式顯示變量。?
? ? c ?按字符格式顯示變量。?
? ? f ?按浮點(diǎn)數(shù)格式顯示變量。
?
3.print *a@10
? ? ? ?a是一個(gè)數(shù)組,10個(gè)元素
4.print x=4
? ? ? ?修改運(yùn)行時(shí)候的變量值

其它

1.finish
? ? ? ? 執(zhí)行完當(dāng)前函數(shù)返回到調(diào)用它的函數(shù) ???
2.until/u
? ? ? ? 指定程序直到退出當(dāng)前循環(huán)體?
3.jump 5
? ? ? ? 跳轉(zhuǎn)執(zhí)行程序到第5行
4.return
? ? ? ? 強(qiáng)制返回當(dāng)前函數(shù)
5.call <expr>?
? ? ? ? 強(qiáng)制調(diào)用函數(shù):?
? print <expr>?
?? ??? ?強(qiáng)制調(diào)用函數(shù)2:
【如果函數(shù)的返回值是void那么call不會(huì)打印返回值,但是print還是會(huì)打印出函數(shù)的返回值并且存放到歷史記錄中。】?
6.kill
? ? ? ? 終止一個(gè)正在調(diào)試的程序
?
7.display:追蹤查看具體變量值
? undisplay:取消追蹤觀察變量
?
8.
? watch:被設(shè)置觀察點(diǎn)的變量發(fā)生修改時(shí),打印顯示
? i watch:顯示觀察點(diǎn)?

layout

layout:用于分割窗口,可以一邊查看代碼,一邊測試。主要有以下幾種用法:
layout src:顯示源代碼窗口
layout asm:顯示匯編窗口
layout regs:顯示源代碼/匯編和寄存器窗口
layout split:顯示源代碼和匯編窗口
layout next:顯示下一個(gè)layout
layout prev:顯示上一個(gè)layout
?
Ctrl + L:刷新窗口
Ctrl + x,再按1:單窗口模式,顯示一個(gè)窗口
Ctrl + x,再按2:雙窗口模式,顯示兩個(gè)窗口
Ctrl + x,再按a:回到傳統(tǒng)模式,即退出layout,回到執(zhí)行l(wèi)ayout之前的調(diào)試窗口。?

多線程調(diào)試

(1)查看可切換調(diào)試的線程:info threads
?
(2)切換調(diào)試的線程:thread 線程id
?
(3)只運(yùn)行當(dāng)前線程:set scheduler-locking on
?
(4)運(yùn)行全部的線程:set scheduler-locking off
?
(5)指定某線程執(zhí)行某gdb命令:thread apply 線程id gdb_cmd
?
(6)全部的線程執(zhí)行某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;
}

在編譯文件的時(shí)候加入 -g就能進(jìn)行程序調(diào)試

我記得exit也能退出的不知道為什么不行了

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

?那個(gè)tui沒整好不過無所謂,工具是為了方便大家使用的,而不是來扭曲我們的思想和習(xí)慣。

用他好用的地方就好了,其實(shí)我以前一直很喜歡打印來找錯(cuò)誤,這是驅(qū)動(dòng)的習(xí)慣,因?yàn)轵?qū)動(dòng)不用gdb,但是驅(qū)動(dòng)的實(shí)習(xí)找不到啊,只好學(xué)學(xué)軟件開發(fā)的東西先找個(gè)軟件實(shí)習(xí)了。

加個(gè)斷點(diǎn)

?

?這次就沒有溢出了,因?yàn)樵谳斎脒@里停了。

?C繼續(xù)執(zhí)行,很好又溢出了

n單步執(zhí)行,問題出現(xiàn)了,就是輸入的時(shí)候就G了。

回車也是單步執(zhí)行

可以tab補(bǔ)全還可以看之前的命令

當(dāng)運(yùn)行到函數(shù)的時(shí)候要按step進(jìn)入函數(shù)內(nèi)單步執(zhí)行

不然n就是直接執(zhí)行完這個(gè)函數(shù)

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

p可以查看變量和函數(shù)的地址或值

info是查詢,可以簡寫成i

i b

可以查詢斷點(diǎn)

?i reg

查詢寄存器

i r也可以

delete刪除全部斷點(diǎn)也可以指定刪除

簡寫為d

http://www.risenshineclean.com/news/12180.html

相關(guān)文章:

  • 做一個(gè)模板網(wǎng)站多少錢如何推廣好一個(gè)產(chǎn)品
  • 絞銅機(jī) 東莞網(wǎng)站建設(shè)網(wǎng)站seo排名培訓(xùn)
  • 男的直接做的視頻網(wǎng)站站長seo推廣
  • 北京企業(yè)網(wǎng)站設(shè)計(jì)制作百度關(guān)鍵字推廣費(fèi)用
  • 做拼貨商城網(wǎng)站國際婚戀網(wǎng)站排名
  • 企業(yè)做網(wǎng)站需要哪些材料網(wǎng)絡(luò)優(yōu)化培訓(xùn)騙局
  • ac86u做網(wǎng)站服務(wù)器百度競價(jià)推廣方案范文
  • javascript菜鳥教程簡單網(wǎng)站建設(shè)優(yōu)化推廣
  • 公司網(wǎng)站用什么開發(fā)云服務(wù)器免費(fèi)
  • 推廣做網(wǎng)站怎么樣電子商務(wù)網(wǎng)站
  • wordpress的語言優(yōu)化營商環(huán)境條例
  • 北海網(wǎng)站建設(shè)比百度強(qiáng)大的搜索引擎
  • 西寧網(wǎng)站維護(hù)推廣引流網(wǎng)站
  • 網(wǎng)站引導(dǎo)視頻怎么做友情鏈接交換條件
  • 建材網(wǎng)站石家莊網(wǎng)絡(luò)推廣平臺(tái)
  • 如何讓百度不收錄網(wǎng)站b2b免費(fèi)發(fā)布平臺(tái)
  • 汕頭食品駿域網(wǎng)站建設(shè)廣州seo
  • 用asp.net做的 購物網(wǎng)站視頻百度快速排名平臺(tái)
  • seo服務(wù)器多ip國家優(yōu)化防控措施
  • 網(wǎng)站建設(shè)實(shí)踐報(bào)告怎么優(yōu)化網(wǎng)站關(guān)鍵詞的方法
  • 網(wǎng)站建設(shè)與網(wǎng)頁設(shè)計(jì)案例教程pdf下載怎么讓百度快速收錄網(wǎng)站
  • 做直通車任務(wù)的網(wǎng)站做個(gè)網(wǎng)頁需要多少錢?
  • 網(wǎng)站開發(fā)語言為電商平臺(tái)網(wǎng)站
  • 韓國ps教程網(wǎng)站朋友圈廣告推廣代理
  • 怎么把自己做的網(wǎng)站百度競價(jià)推廣開戶內(nèi)容
  • 網(wǎng)站開發(fā)溝通百度競價(jià)是什么工作
  • 一般可以在哪些網(wǎng)站做推廣b站推廣2023
  • 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師專項(xiàng)提升seo網(wǎng)站優(yōu)化師
  • 沈陽網(wǎng)站制作定制策劃2024年2月疫情又開始了嗎
  • wordpress注冊的用戶不是vipseo怎么推廣