色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>C語言|源代碼>gdb調(diào)試器解析

gdb調(diào)試器解析

2017-10-18 | rar | 0.3 MB | 次下載 | 1積分

資料介紹

 3.4 gdb調(diào)試器
  調(diào)試是所有程序員都會面臨的問題。如何提高程序員的調(diào)試效率,更好、更快地定位程序中的問題從而加快程序開發(fā)的進(jìn)度,是大家都很關(guān)注的問題。就如讀者熟知的Windows下的一些調(diào)試工具,如Visual Studio自帶的設(shè)置斷點(diǎn)、單步跟蹤等,都受到了廣大用戶的贊賞。那么,在Linux下有什么很好的調(diào)試工具呢?
  gdb調(diào)試器是一款GNU開發(fā)組織并發(fā)布的UNIX/Linux下的程序調(diào)試工具。雖然,它沒有圖形化的友好界面,但是它強(qiáng)大的功能也足以與微軟的Visual Studio等工具媲美。下面就請跟隨筆者一步步學(xué)習(xí)gdb調(diào)試器。
  3.4.1 gdb使用流程
  這里給出了一個(gè)短小的程序,由此帶領(lǐng)讀者熟悉gdb的使用流程。建議讀者能夠動手實(shí)際操作一下。
  首先,打開Linux下的編輯器vi或者emacs,編輯如下代碼(由于為了更好地熟悉gdb的操作,筆者在此使用vi編輯,希望讀者能夠參見3.3節(jié)中對vi的介紹,并熟練使用vi)。
  /*test.c*/
  #include 《stdio.h》
  int sum(int m);
  int main()
  {
  int i, n = 0;
  sum(50);
  for(i = 1; i《= 50; i++)
  {
  n += i;
  }
  printf(“The sum of 1-50 is %d \n”, n );
  }
  int sum(int m)
  {
  int i, n = 0;
  for (i = 1; i 《= m; i++)
  {
  n += i;
  printf(“The sum of 1-m is %d\n”, n);
  }
  }
  在保存退出后首先使用gcc對test.c進(jìn)行編譯,注意一定要加上選項(xiàng)“-g”,這樣編譯出的可執(zhí)行代碼中才包含調(diào)試信息,否則之后gdb無法載入該可執(zhí)行文件。
  [root@localhost gdb]# gcc -g test.c -o test
  雖然這段程序沒有錯(cuò)誤,但調(diào)試完全正確的程序可以更加了解gdb的使用流程。接下來就啟動gdb進(jìn)行調(diào)試。注意,gdb進(jìn)行調(diào)試的是可執(zhí)行文件,而不是如“.c”的源代碼,因此,需要先通過gcc編譯生成可執(zhí)行文件才能用gdb進(jìn)行調(diào)試。
  [root@localhost gdb]# gdb test
  GNU gdb Red Hat Linux (6.3.0.0-1.21rh)
  Copyright 2004 Free Software Foundation, Inc.
  GDB is free software, covered by the GNU General Public License, and you are
  welcome to change it and/or distribute copies of it under certain conditions.
  Type “show copying” to see the conditions.
  There is absolutely no warranty for GDB. Type “show warranty” for details.
  This GDB was configured as “i386-redhat-linux-gnu”。..Using host libthread_db library “/lib/libthread_db.so.1”。
  (gdb)
  可以看出,在gdb的啟動畫面中指出了gdb的版本號、使用的庫文件等信息,接下來就進(jìn)入了由“(gdb)”開頭的命令行界面了。
  (1)查看文件。
  在gdb中鍵入“l(fā)”(list)就可以查看所載入的文件,如下所示。
  注意在gdb的命令中都可使用縮略形式的命令,如“l(fā)”代表“l(fā)ist”,“b”代表“breakpoint”,“p”代表“print”等,讀者也可使用“help”命令查看幫助信息。
  (gdb) l
  1 #include 《stdio.h》
  2 int sum(int m);
  3 int main()
  4 {
  5 int i,n = 0;
  6 sum(50);
  7 for(i = 1; i 《= 50; i++)
  8 {
  9 n += i;
  10 }
  (gdb) l
  11 printf(“The sum of 1~50 is %d \n”, n );
  12
  13 }
  14 int sum(int m)
  15 {
  16 int i, n = 0;
  17 for(i = 1; i 《= m; i++)
  18 {
  19 n += i;
  20 }
  21 printf(“The sum of 1~m is = %d\n”, n);
  20 }
  可以看出,gdb列出的源代碼中明確地給出了對應(yīng)的行號,這樣就可以大大地方便代碼的定位。
  (2)設(shè)置斷點(diǎn)。
  設(shè)置斷點(diǎn)是調(diào)試程序中一個(gè)非常重要的手段,它可以使程序運(yùn)行到一定位置時(shí)暫停。因此,程序員在該位置處可以方便地查看變量的值、堆棧情況等,從而找出代碼的癥結(jié)所在。
  在gdb中設(shè)置斷點(diǎn)非常簡單,只需在“b”后加入對應(yīng)的行號即可(這是最常用的方式,另外還有其他方式設(shè)置斷點(diǎn)),如下所示:
  (gdb) b 6
  Breakpoint 1 at 0x804846d: file test.c, line 6.
  要注意的是,在gdb中利用行號設(shè)置斷點(diǎn)是指代碼運(yùn)行到對應(yīng)行之前將其停止,如上例中,代碼運(yùn)行到第6行之前暫停(并沒有運(yùn)行第6行)。
  (3)查看斷點(diǎn)情況。
  在設(shè)置完斷點(diǎn)之后,用戶可以鍵入“info b”來查看設(shè)置斷點(diǎn)情況,在gdb中可以設(shè)置多個(gè)斷點(diǎn)。
  (gdb) info b
  Num Type Disp Enb Address What
  1 breakpoint keep y 0x0804846d in main at test.c:6
  用戶在斷點(diǎn)鍵入“backrace”(只輸入“bt”即可)可以查到調(diào)用函數(shù)(堆棧)的情況,這個(gè)功能在程序調(diào)試之中使用非常廣泛,經(jīng)常用于排除錯(cuò)誤或者監(jiān)視調(diào)用堆棧的情況。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1490次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
  14. 0.63 MB  |  3次下載  |  免費(fèi)
  15. 89天練會電子電路識圖
  16. 5.91 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)
主站蜘蛛池模板: JAPANRCEP老熟妇乱子伦视频 | 91久久偷偷做嫩草影院免 | 精品三级在线观看 | 最近日本MV字幕免费观看视频 | 新版孕妇bbwbbwbbw| 色欲国产麻豆精品AV免费 | 亚洲国产日韩制服在线观看 | 国产精品高潮AV久久无码 | 久久婷婷五月免费综合色啪 | 午夜影院一区二区三区 | 亚在线观看免费视频入口 | 最近的中文字幕免费完整 | 国产在线观看成人免费视频 | 古月娜下面好紧好爽 | 牛牛在线精品视频 | 日日干夜夜爱 | 日本亚洲精品无码区国产电影 | 国产精品久久人妻互换毛片 | 日韩精品久久久久久久电影 | 脱jk裙的美女露小内内无遮挡 | 日本污ww视频网站 | 手机看片国产日韩欧美 | 国产精品视频在线自在线 | 扒开女人下面使劲桶视频 | 一二三四韩国免费观看 | 久久精品亚洲精品国产欧美 | 国产成人在线免费观看 | 日韩国产精品欧美一区二区 | 欧美日韩另类在线观看视频 | www伊人网 | 久久久影院亚洲精品 | 国产成人精品亚洲线观看 | 成人免费一区二区无码视频 | se01国产短视频在线观看 | 成年私人影院网站在线看 | 欧美日韩888在线观看 | 国产精品久久免费视频 | 欧美含羞草免费观看全部完 | 亚洲精品一本之道高清乱码 | 精品人妻无码一区二区三区蜜桃臀 | 妖精视频在线观看高清 |