日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gdb

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gdb 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所要測試的代碼如下

#include <stdio.h>int nGlobalVar = 0;int tempFunction(int a, int b) {printf("tempFunction is called, a = %d, b = %d /n", a, b); return (a + b); }int main() {int n;n = 1;n++;n--;nGlobalVar += 100;nGlobalVar -= 12; printf("n = %d, nGlobalVar = %d /n", n, nGlobalVar);n = tempFunction(1, 2);printf("n = %d", n);return 0; }

啟動GDB

[ubuntu@VM-48-245-ubuntu ~/c_test]$ gdb

file命令載入被調試程序
(gdb-test是由gdb-test.c編譯出來的可執行文件)

(gdb) file gdb-test

注意 編譯時加入-g參數,輸出調試信息

gcc gdb-test.c -o gdb-test -g

r命令執行(Run)被調試文件,因為尚未設置任何斷點,將直接執行到程序結束

(gdb) r Starting program: /home/ubuntu/c_test/gdb-test n = 1, nGlobalVar = 88 /ntempFunction is called, a = 1, b = 2 /nn = 3[Inferior 1 (process 3114) exited normally]

“b”命令在 main 函數開頭設置一個斷點(Breakpoint)

(gdb) b main Breakpoint 1 at 0x400559

再次使用“r”命令執行(Run)被調試程序:

(gdb) r Starting program: /home/ubuntu/c_test/gdb-test Breakpoint 1, main () at gdb-test.c:14 14 n = 1;

面使用“s”命令(Step)執行下一行代碼

(gdb) s 15 n++;

用“p”命令(Print)看一下變量 n 的值是不是 1

(gdb) p n $1 = 1

“q”,退出(Quit)GDB調試環境:

(gdb) q A debugging session is active.Inferior 1 [process 4283] will be killed.Quit anyway? (y or n) y

總結

以上是生活随笔為你收集整理的gdb的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。