0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內(nèi)不再提示

GDB調(diào)試如何進(jìn)行變量查看

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-26 16:17 ? 次閱讀

變量查看

  • 變量查看: 最常見的使用便是使用print(可簡寫為p)打印變量內(nèi)容。
    以上述程序?yàn)槔?/p>

    gdb helloworld
    break helloworld.c:17 if i == 0
    (gdb) run
    Starting program: /home/book/helloworld
    helloworld.
    
    Breakpoint 2, main (argc=1, argv=0x7fffffffdca8) at helloworld.c:17
    17            result += i;
    (gdb) print i                < ------------------ 查看變量 i 當(dāng)前的值
    $1 = 10
    (gdb) print result           < ------------------ 查看變量 result 當(dāng)前的值
    $2 = 45
    (gdb) print argc             < ------------------ 查看變量 argc 當(dāng)前的值
    $3 = 1
    (gdb) print str
    $4 = 0x4006c8 "Hello World" < ------------------ 查看變量 str 當(dāng)前的值
    
  • 查看內(nèi)存: examine(簡寫為x)可以用來查看內(nèi)存地址中的值。語法如下:

    x/[n][f][u] addr
    

    其中:

    單元類型常見有如下:

    示例:

    (gdb) x/4b str
    0x4006c8:    01001000    01100101    01101100    01101100
    

    可以看到,變量 str 的四個字節(jié)都以二進(jìn)制的方式打印出來了。

    • b 字節(jié)
    • h 半字,即雙字節(jié)
    • w 字,即四字節(jié)
    • g 八字節(jié)
    • n 表示要顯示的內(nèi)存單元數(shù),默認(rèn)值為1
    • f 表示要打印的格式,前面已經(jīng)提到了格式控制字符
    • u 要打印的單元長度
    • addr 內(nèi)存地址
  • 查看寄存器內(nèi)容: info registers

ra             0x3ff7ef2282     0x3ff7ef2282 < __libc_start_main+160 >
sp             0x3ffffffaa0     0x3ffffffaa0
gp             0x2aaaaac800     0x2aaaaac800
tp             0x3ff7fdd250     0x3ff7fdd250
t0             0x3ff7ed60b0     274742468784
t1             0x3ff7ef21e2     274742583778
t2             0x2aaaaac4f0     183251944688
fp             0x3ffffffab0     0x3ffffffab0
s1             0x0      0
a0             0x1      1
a1             0x3ffffffc28     274877905960
a2             0x3ffffffc38     274877905976
a3             0x0      0
a4             0x3ffffffad8     274877905624
a5             0x0      0
a6             0x3ff7fd88a8     274743527592
(內(nèi)容過多未顯示完全)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11469

    瀏覽量

    212911
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    608

    瀏覽量

    34545
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    28846
  • gdb
    gdb
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    13551
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    QEMU+GDB調(diào)試ARM程序

    通過GDB調(diào)試代碼的便利性無需贅言。我們直接以調(diào)試meta-hypervisor為示例進(jìn)行說明。
    的頭像 發(fā)表于 10-08 09:17 ?3369次閱讀

    使用GDB調(diào)試Linux應(yīng)用程序

    本篇講解使用GDB調(diào)試Linux應(yīng)用程序,以下以 `hellowld.c` 為例介紹 GDB調(diào)試入門。
    發(fā)表于 06-27 15:48 ?571次閱讀

    Linux下用gdb 調(diào)試、查看代碼堆棧 - 程良

    的參數(shù)名及其值。info locals打印出當(dāng)前函數(shù)中所有局部變量及其值。info catch打印出當(dāng)前的函數(shù)中的異常處理信息。查看源程序—————一、顯示源代碼GDB 可以打印出所調(diào)試
    發(fā)表于 12-01 09:46

    ARM平臺如何玩轉(zhuǎn)GDB遠(yuǎn)程調(diào)試

    程序、單步執(zhí)行、跳入/跳出函數(shù)、設(shè)置斷點(diǎn)、查看變量等等,它是UNIX/LINUX操作系統(tǒng)下強(qiáng)大的程序調(diào)試工具。GDB支持多種語言,包括Ada、匯編、C/C++、D、Fortran、GO
    發(fā)表于 09-27 15:28

    IAR 在線調(diào)試查看各種變量的不同方法

    IAR在線調(diào)試查看各種變量的不同方法
    的頭像 發(fā)表于 03-12 10:00 ?1.4w次閱讀

    Linux應(yīng)用的GDB調(diào)試的原理及過程分析

    GDB調(diào)試是應(yīng)用程序在開發(fā)板上運(yùn)行,然后在PC機(jī)上對開發(fā)板上得應(yīng)用程序進(jìn)行調(diào)試,PC機(jī)運(yùn)行GDB,開發(fā)板上運(yùn)行GDBServer。在應(yīng)用程序
    發(fā)表于 03-05 09:44 ?3565次閱讀
    Linux應(yīng)用的<b class='flag-5'>GDB</b><b class='flag-5'>調(diào)試</b>的原理及過程分析

    實(shí)例演示GDB的使用

    GDB簡介 GDB(GNU Debugger)是一個強(qiáng)大的命令行調(diào)試工具。一般的,在Windows下進(jìn)行開發(fā),很少操控命令行調(diào)試,
    的頭像 發(fā)表于 10-19 09:58 ?3096次閱讀
    實(shí)例演示<b class='flag-5'>GDB</b>的使用

    嵌入式Linux GDB調(diào)試環(huán)境搭建與使用

    /跳出函數(shù)、設(shè)置斷點(diǎn)、查看變量等等。Ubuntu資源充足,可以直接用gdb調(diào)試程序。嵌入式Linux性能弱,一般PC上運(yùn)行源碼和GDB工具,
    發(fā)表于 11-01 17:59 ?8次下載
    嵌入式Linux <b class='flag-5'>GDB</b><b class='flag-5'>調(diào)試</b>環(huán)境搭建與使用

    linux下gdb安裝與使用簡介

    GDB,又稱GNU調(diào)試器,是用來幫助調(diào)試我們程序的工具。gdb可以設(shè)置斷點(diǎn)、查看變量、堆??臻g的
    的頭像 發(fā)表于 08-16 09:03 ?3738次閱讀
    linux下<b class='flag-5'>gdb</b>安裝與使用簡介

    ARM平臺如何玩轉(zhuǎn)GDB遠(yuǎn)程調(diào)試?

    前言關(guān)于GDB工具GDB工具是GNU項(xiàng)目調(diào)試器,基于命令行使用。和其他的調(diào)試器一樣,可使用GDB工具單步運(yùn)行程序、單步執(zhí)行、跳入/跳出函數(shù)、
    的頭像 發(fā)表于 09-28 18:17 ?1226次閱讀
    ARM平臺如何玩轉(zhuǎn)<b class='flag-5'>GDB</b>遠(yuǎn)程<b class='flag-5'>調(diào)試</b>?

    嵌入式Linux GDB是什么

    函數(shù)、設(shè)置斷點(diǎn)、查看變量等等,它是 UNIX/LINUX 操作系統(tǒng)下強(qiáng)大的程序調(diào)試工具。 gdb 支持多種語言
    的頭像 發(fā)表于 07-27 16:29 ?954次閱讀
    嵌入式Linux <b class='flag-5'>GDB</b>是什么

    Linux系統(tǒng)中如何進(jìn)行GDB調(diào)試

    啟動調(diào)試 $ gdb helloWorldGNU gdb (GDB) Red Hat Enterprise Linux 8.2-12.el8 Copyright (C) 2018 F
    的頭像 發(fā)表于 10-04 15:52 ?596次閱讀

    GDB調(diào)試工具的原理

    了。 1.2 執(zhí)行中進(jìn)程調(diào)試 如果想對一個已經(jīng)執(zhí)行的進(jìn)程進(jìn)行調(diào)試,那么就要在gdb這個父進(jìn)程中調(diào)用ptrace(PTRACE_ATTA
    的頭像 發(fā)表于 11-09 17:04 ?1235次閱讀
    <b class='flag-5'>GDB</b><b class='flag-5'>調(diào)試</b>工具的原理

    如何使用GDB調(diào)試工具

    在對應(yīng)程序目錄中使用下面的命令 gdb test 2、調(diào)試已經(jīng)開始運(yùn)行的程序進(jìn)程 調(diào)試已經(jīng)開始運(yùn)行的程序進(jìn)程,首先先用top命令查看運(yùn)行的程序進(jìn)程的pid如下: 比如我要加載的程序
    的頭像 發(fā)表于 11-09 17:17 ?1178次閱讀
    如何使用<b class='flag-5'>GDB</b><b class='flag-5'>調(diào)試</b>工具

    如何使用linux下gdb調(diào)試python程序

    如何使用linux下gdb調(diào)試python程序? 在Linux下,可以使用GDB(GNU調(diào)試器)來調(diào)試Python程序。
    的頭像 發(fā)表于 01-31 10:41 ?3146次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品