0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GDB调试如何进行变量查看

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-26 16:17 次阅读

变量查看

  • 变量查看: 最常见的使用便是使用print(可简写为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 当前的值
    $1 = 10
    (gdb) print result           < ------------------ 查看变量 result 当前的值
    $2 = 45
    (gdb) print argc             < ------------------ 查看变量 argc 当前的值
    $3 = 1
    (gdb) print str
    $4 = 0x4006c8 "Hello World" < ------------------ 查看变量 str 当前的值
    
  • 查看内存: examine(简写为x)可以用来查看内存地址中的值。语法如下:

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

    其中:

    单元类型常见有如下:

    示例:

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

    可以看到,变量 str 的四个字节都以二进制的方式打印出来了。

    • b 字节
    • h 半字,即双字节
    • w 字,即四字节
    • g 八字节
    • n 表示要显示的内存单元数,默认值为1
    • f 表示要打印的格式,前面已经提到了格式控制字符
    • u 要打印的单元长度
    • addr 内存地址
  • 查看寄存器内容: 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
(内容过多未显示完全)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • 调试
    +关注

    关注

    7

    文章

    527

    浏览量

    33625
  • 变量
    +关注

    关注

    0

    文章

    596

    浏览量

    28112
  • gdb
    gdb
    +关注

    关注

    0

    文章

    60

    浏览量

    13162
收藏 人收藏

    评论

    相关推荐

    Linux下用gdb 调试查看代码堆栈 - 程良

    的参数名及其值。info locals打印出当前函数中所有局部变量及其值。info catch打印出当前的函数中的异常处理信息。查看源程序—————一、显示源代码GDB 可以打印出所调试
    发表于 12-01 09:46

    ARM平台如何玩转GDB远程调试

    程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具。GDB支持多种语言,包括Ada、汇编、C/C++、D、Fortran、GO
    发表于 09-27 15:28

    ubuntu下GDB调试GDB简介

    操作系统,GDB可以运行在UNIX、Linux甚至Microsoft Windows。GDB可以调试C、C++、Objective-C、Pascal、Ada等语言编写的程序;被调试的程
    发表于 12-21 08:20

    使用GDB对RT-Smart进行代码调试的方法

    在开发的过程中,有时没有现成的图形化开发环境,想要进行调试时,需要使用 GDB 直接进行代码调试。本文档记录了以 RT-Thread qem
    发表于 03-15 11:28

    数组中的变量取值范围如何进行纠正

    本文档的主要内容详细介绍的是数组中变量取值范围如何进行纠正。
    发表于 12-17 17:08 4次下载

    IAR 在线调试查看各种变量的不同方法

    IAR在线调试查看各种变量的不同方法
    的头像 发表于 03-12 10:00 1.2w次阅读

    实例演示GDB的使用

    GDB简介 GDB(GNU Debugger)是一个强大的命令行调试工具。一般的,在Windows下进行开发,很少操控命令行调试
    的头像 发表于 10-19 09:58 2354次阅读
    实例演示<b class='flag-5'>GDB</b>的使用

    嵌入式Linux GDB调试环境搭建与使用

    /跳出函数、设置断点、查看变量等等。Ubuntu资源充足,可以直接用gdb调试程序。嵌入式Linux性能弱,一般PC上运行源码和GDB工具,
    发表于 11-01 17:59 8次下载
    嵌入式Linux <b class='flag-5'>GDB</b><b class='flag-5'>调试</b>环境搭建与使用

    linux下gdb安装与使用简介

    GDB,又称GNU调试器,是用来帮助调试我们程序的工具。gdb可以设置断点、查看变量、堆栈空间的
    的头像 发表于 08-16 09:03 2821次阅读
    linux下<b class='flag-5'>gdb</b>安装与使用简介

    ARM平台如何玩转GDB远程调试

    前言关于GDB工具GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、
    的头像 发表于 09-28 18:17 652次阅读
    ARM平台如何玩转<b class='flag-5'>GDB</b>远程<b class='flag-5'>调试</b>?

    嵌入式Linux GDB是什么

    函数、设置断点、查看变量等等,它是 UNIX/LINUX 操作系统下强大的程序调试工具。 gdb 支持多种语言
    的头像 发表于 07-27 16:29 457次阅读
    嵌入式Linux <b class='flag-5'>GDB</b>是什么

    Linux系统中如何进行GDB调试

    -g 启动调试 $ gdb helloWorldGNU gdb (GDB) Red Hat Enterprise Linux 8.2-12.el8 Copyright (C) 201
    的头像 发表于 10-04 15:52 218次阅读

    GDB调试工具的原理

    了。 1.2 执行中进程调试 如果想对一个已经执行的进程进行调试,那么就要在gdb这个父进程中调用ptrace(PTRACE_ATTA
    的头像 发表于 11-09 17:04 335次阅读
    <b class='flag-5'>GDB</b><b class='flag-5'>调试</b>工具的原理

    如何使用GDB调试工具

    在对应程序目录中使用下面的命令 gdb test 2、调试已经开始运行的程序进程 调试已经开始运行的程序进程,首先先用top命令查看运行的程序进程的pid如下: 比如我要加载的程序
    的头像 发表于 11-09 17:17 343次阅读
    如何使用<b class='flag-5'>GDB</b><b class='flag-5'>调试</b>工具

    如何使用linux下gdb调试python程序

    如何使用linux下gdb调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。
    的头像 发表于 01-31 10:41 474次阅读