青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

The Way of C++

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  55 Posts :: 0 Stories :: 19 Comments :: 0 Trackbacks

公告

The first time i use this blog, i will write something that i learn which i think is worth write down.

常用鏈接

留言簿(3)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

GDB的使用

  當程序出錯并產生core 時

  快速定位出錯函數的辦法

  gdb 程序名 core文件名(一般是core,也可能是core.xxxx)

  調試程序使用的鍵

  r run 運行.程序還沒有運行前使用

  c cuntinue 繼續運行。運行中斷后繼續運行

  q 退出

  kill 終止調試的程序

  h help 幫助

  <tab> 命令補全功能

  step 跟入函數

  next 不跟入函數

  b breakpoint 設置斷點。

  用法:

  b 函數名 對此函數進行中斷

  b 文件名:行號 對此文件中指定行中斷.如果是當前文件,那么文件名與:號可以

  省略

  看當前斷點數使用info break.禁止斷點disable 斷點號.刪除delete 斷點號.

  l list 列出代碼行。一次列10 行。連接使用list將會滾動顯示. 也可以在list 后面

  跟上 文件名:行號

  watch 觀察一個變量的值。每次中斷時都會顯示這個變量的值

  p print 打印一個變量的值。與watch不同的是print只顯示一次

  這里在順便說說如何改變一個 value. 當你下指令 p 的時候,例如你用 p b,

  這時候你會看到 b 的 value, 也就是上面的 $1 = 15.

  你也同樣可以用 p 來改變一個 value, 例如下指令 p b = 100 試試看,

  這時候你會發現, b 的 value 就變成 100 了:$1 = 100.

  網上抄錄

  基本的使用方法簡介

  前言

  程序代碼中的錯誤可分為數類,除了最容易除錯的語法錯誤,編譯程序會告訴你錯誤所在外,大部分的錯誤都可以歸類為執行時錯誤。GDB 的功能便是尋找執行時錯誤。如果沒有除錯程序,我們只能在程序中加入輸出變量值的指令來了解程序執行的狀態。有了 GDB 除錯程序,我們可以設定在任何地方停止程序的執行,然后可以隨意檢視變量值及更動變量,并逐行執行程序。

  一個除錯程序執行的流程通常是這樣的:

  1. 進入除錯程序并指定可執行文件。

  2. 指定程序代碼所在目錄。

  3. 設定斷點后執行程序。

  4. 程序于斷點中斷后,可以 (1)檢視程序執行狀態;檢視變量值或變更變量值 (2) 逐步執行程序,或是全速執行程序到下一個斷點或是到程序結束為止。

  5. 離開除錯程序。

  以下將分為下列數項分別介紹:

  1. 進入 GDB 及指定可執行檔

  2. 指定程序代碼所在目錄及檢視程序代碼

  3. 斷點的設定與清除

  4. 全速及逐步執行程序

  5. 檢視及更改變量值

  6. 檢視程序執行狀態

  7. 讀取 Core 文件信息

  進入 GDB 及指定可執行檔:

  1. 進入 GDB 并讀入可執行檔 (檔名為 'PROGRAM'),準備進行除錯。

  gdb PROGRAM

  指定程序代碼所在目錄及檢視程序代碼

  1. 增加目錄 DIR 到收尋程序代碼的目錄列表 (如果你的程序代碼和可執行檔放在同一個目錄下,就不須指定程序代碼所在目錄。):

  (gdb) directory DIR

  2. 檢視程序代碼,格式計有:

  (gdb) list => 顯示目前執行程序代碼前后各五行的程序代碼;或是顯示從上次 list 之后的程序代碼

  (gdb) list function => 顯示該程序開始處前后五行的程序代碼。

  (gdb) list - =>上次顯示程序代碼的前面的十行。

  斷點的設定與清除

  1. 設定斷點(指令為 break,可簡寫為 (b),格式計有:

  (gdb) break filename.c:30 => 在 filename.c 的第三十行處停止執行。

  (gdb) break function => 在進入 function 時中斷程序的執行。

  (gdb) break filename.c:function => 在程序代碼檔 filename.c 中的函數 function 處設定斷點。

  (gdb) break => 在下一個將被執行的命令設定斷點。

  (gdb) break ... if cond => 只有當 cond 成立的時候才中斷。cond 須以 C 語言的語法寫成。

  2. 顯示各個斷點的信息。

  (gdb) info break

  3. 清除斷點(命令為 clear),格式同 break 。例如 :

  (gdb) clear filename.c:30

  4. 清除斷點,NUM 是在 info break 顯示出來的斷點編號。

  (gdb) delete NUM

  全速及逐步執行程序

  1. 從程序開頭全速執行程序,直到遇到斷點或是程序執行完畢為止。

  (gdb) run

  2. 在程序被中斷后,全速執行程序到下一個斷點或是程序結束為止 (continue 指令可簡寫為 c)。

  (gdb) continue

  3. 執行一行程序. 若呼叫函數, 則將該包含該函數程序代碼視為一行程序 (next 指令可簡寫為 n)。

  (gdb) next

  4. 執行一行程序. 若呼叫函數, 則進入函數逐行執行 (step 指令可簡寫為 s)。

  (gdb) step

  5. 執行一行程序,若此時程序是在 for/while/do loop 循環的最后一行,則一直執行到循環結束后的第一行程序后停止 (until 指令可簡寫為 u)。

  (gdb) until

  6. 執行現行程序到回到上一層程序為止。

  (gdb) finish

  檢視及更改變量值

  1. print 敘述,顯示該敘述執行的結果 (print 指令可簡寫為 p)。如

  (gdb) print a => 顯示 a 變量的內容.

  (gdb) print sizeof(a) => 顯示 a 變量的長度.

  2. display 敘述,在每個斷點或是每執行一步時顯示該敘述值。如

  (gdb) display a

  3. 更改變量值:

  (gdb) print (a=10) => 將變量 a 的值設定為 10.

  檢視程序執行狀態

  1. 查看程序執行到此時,是經過哪些函數呼叫的程序 (backtrace 指令可簡寫為 bt),也就是查看函數呼叫堆棧。

  (gdb) backtrace

  讀取 Core 文件信息

  1. 讀入 PROGRAM 及 PROGRAM.CORE 檔,可檢視 Core Dump 時程序變量值及程序流程狀態 。

  gdb PROGRAM core

  說明:'core' 檔案是由 PROGRAM 檔執行后,遇到 Core Dump 時產生的 Core 檔檔名。如果你還需要該 Core 檔,我們建議你將該檔案檔名更改為 PROGRAM.core。在輸入上述命令后,你可以用 GDB 提供的檢視變量值以及檢視程序執行狀態來讀取程序 Core Dump 時的狀態。
posted on 2010-03-14 12:45 koson 閱讀(292) 評論(0)  編輯 收藏 引用 所屬分類: Linux
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99视频精品| 在线免费不卡视频| 欧美一区二区三区四区高清| 亚洲欧洲日韩综合二区| 午夜一级久久| 国产精品入口| 欧美日韩成人综合天天影院| 久久久九九九九| 欧美一区二区网站| 欧美有码在线观看视频| 亚洲裸体在线观看| 夜夜精品视频一区二区| 亚洲欧美国产制服动漫| 久久精品国产视频| 欧美激情女人20p| 国产精品毛片在线| 一区二区三区在线观看国产| 亚洲欧洲日产国码二区| 亚洲欧美日韩国产一区二区| 91久久线看在观草草青青| 欧美激情精品久久久久久黑人| 欧美日韩精品一本二本三本| 国产香蕉97碰碰久久人人| 亚洲精品一区在线| 久久精品男女| 亚洲乱码国产乱码精品精天堂| 欧美一区二区视频在线观看2020| 欧美成人网在线| 国产一区二区三区奇米久涩| 一本久久综合亚洲鲁鲁| 久久夜色精品国产亚洲aⅴ| 99这里只有久久精品视频| 久久综合给合| 国产欧美日韩不卡| 亚洲一区三区在线观看| 免费视频久久| 欧美在线观看一区二区| 欧美性天天影院| 亚洲免费影院| 免费人成网站在线观看欧美高清| 亚洲免费观看高清完整版在线观看| 欧美在线视频免费观看| 欧美日韩国语| 亚洲日本激情| 欧美顶级艳妇交换群宴| 久久久国产精品一区二区三区| 国产精品久久久久久久9999| 亚洲巨乳在线| 亚洲精品1234| 麻豆精品在线播放| 在线观看国产精品网站| 久久这里有精品视频| 午夜精品久久久久影视| 国产精品久久久一本精品| 亚洲午夜久久久久久久久电影网| 亚洲人www| 欧美精品一区二区三区久久久竹菊 | 激情视频一区二区三区| 午夜久久影院| 亚洲欧美日韩国产综合精品二区| 欧美视频免费在线| 99re6热只有精品免费观看| 亚洲高清不卡| 欧美精品一区二区视频| 日韩一二三区视频| av成人激情| 国产精品美女www爽爽爽| 欧美一级播放| 久久精品亚洲一区| 亚洲黄色在线观看| 亚洲人妖在线| 国产精品美女久久久久av超清| 亚洲欧美日韩成人| 欧美中文字幕在线| 亚洲国产精品国自产拍av秋霞| 欧美成年人视频网站| 欧美福利一区二区三区| 一区二区三区不卡视频在线观看 | 亚洲女女做受ⅹxx高潮| 国产欧美日韩一区| 麻豆国产精品777777在线| 久久综合一区二区三区| 99在线热播精品免费| 亚洲一区免费看| 尤物九九久久国产精品的特点| 亚洲电影视频在线| 国产精品久久久对白| 久久影视三级福利片| 欧美成人国产| 午夜精品久久久久久99热| 久久久国产成人精品| 99国产精品自拍| 亚洲免费在线观看| 亚洲人在线视频| 欧美亚洲一级| 一本一道久久综合狠狠老精东影业| 亚洲一区激情| 日韩午夜激情| 久久精品日韩| 亚洲在线日韩| 欧美大尺度在线观看| 久久er99精品| 欧美日韩在线高清| 欧美成人精品三级在线观看| 国产精品久久久一区二区| 亚洲电影在线观看| 国产一区二区三区观看| 一本色道久久加勒比88综合| 亚洲第一在线综合网站| 亚洲欧美日韩国产| 亚洲视屏在线播放| 欧美成人午夜免费视在线看片| 欧美在线免费播放| 国产精品成人观看视频免费 | 亚洲国产精品一区二区第四页av| 欧美猛交免费看| 久久中文字幕导航| 国产精品色午夜在线观看| 亚洲高清久久| 精品成人乱色一区二区| 亚洲免费在线观看| 亚洲一区二区在线看| 六月丁香综合| 久久先锋资源| 国产在线观看一区| 亚洲一区日韩在线| 亚洲在线不卡| 欧美色欧美亚洲另类七区| 欧美激情性爽国产精品17p| 韩国成人福利片在线播放| 午夜激情亚洲| 久久国产精品99久久久久久老狼| 欧美性开放视频| 夜夜爽www精品| 亚洲一区二区三区激情| 欧美日韩精品久久| 夜夜嗨av一区二区三区中文字幕| 日韩一级大片| 欧美日韩亚洲天堂| 亚洲精品在线一区二区| 中日韩视频在线观看| 欧美私人网站| 亚洲伊人久久综合| 久久精品国产一区二区三| 国产色产综合色产在线视频 | 国产精品久在线观看| 99在线|亚洲一区二区| 亚洲欧美日韩在线一区| 国产麻豆午夜三级精品| 欧美在线视频播放| 嫩草影视亚洲| 一区二区三区四区五区视频| 国产精品爱久久久久久久| 亚洲综合视频网| 久久蜜桃精品| 亚洲另类一区二区| 欧美午夜久久| 久久久久久久网站| 亚洲日韩欧美视频一区| 亚洲一区图片| 精品99一区二区三区| 欧美激情一区| 亚洲欧美中文日韩在线| 欧美国产一区二区在线观看 | 午夜精品国产更新| 影音欧美亚洲| 欧美视频精品一区| 久久精品国产精品亚洲综合| 亚洲国产精品久久久久秋霞不卡 | 国内精品伊人久久久久av影院| 久久一区亚洲| 在线中文字幕一区| 欧美成人精品在线| 亚洲欧美综合一区| 欧美国产日韩一区二区| 免费看黄裸体一级大秀欧美| 亚洲美女性视频| 羞羞视频在线观看欧美| 亚洲国产日日夜夜| 国产精品一区一区| 欧美激情一区二区三区全黄 | 亚洲欧美日韩国产精品 | 久久精品道一区二区三区| 亚洲国产精品成人| 国产农村妇女毛片精品久久莱园子 | 美女国产一区| 亚洲欧美久久久| 亚洲欧洲三级电影| 国产一区二区三区高清播放| 欧美日韩一本到| 欧美风情在线观看| 久久美女性网| 久久国产精品亚洲77777| 在线一区二区三区做爰视频网站| 欧美福利精品| 久久尤物电影视频在线观看| 亚洲欧美在线aaa| 亚洲午夜精品久久久久久浪潮| 亚洲黄页一区| 亚洲精品1区2区|