Linux下gdb调试打印字符串方式

 更新时间:2023年09月04日 09:58:29   作者:凌肖战  
这篇文章主要介绍了Linux下gdb调试打印字符串方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一. gdb 调试打印字符串

gdb 调试中,有时候需要打印一些字符串。

可以使用如下命令进行字符串的打印。

如下:

x/s 命令

以下面代码为例,说明打印字符串的操作。

代码如下:

#include <stdio.h>
int main(void)
{
    char buffer[100] = {0};
    snprintf(buffer, sizeof(buffer), "%s", "hello,world!");
    printf("***buffer: %s\n", buffer);
    return 0;
}

下面打印 buffer 中的字符串,

操作如下:

可以看到,当输入 x/s buffer 命令时,打印了数组 buffer 中的字符串。

二. 打印变量的类型与变量所在的文件

打印变量类型

gdb 调试中,有时候需要打印变量的类型,

命令入下:

whatis  变量名      或      ptype 变量名

以下面代码为例,说明一下打印变量的类型操作,

代码如下:

#include <stdio.h>
struct student{
    char name[100];
    int age;
};
int main(void)
{
    struct student st = {"Tom", 20};
    printf("***st.name: %s, st.age: %d\n", st.name, st.age);
    return 0;
}

下面在 gdb  调试中,打印变量的类型。

可以看到 whatis 命令与 ptype 命令都可以打印变量的类型,而  ptype 类型打印出了更详细的变量类型信息。

可以看到,查看 变量类型的命令 " whatis 变量名 " 或者 " ptype 变量名 " 的不同效果。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux下多个硬盘划分到同一挂载点问题

    linux下多个硬盘划分到同一挂载点问题

    在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成逻辑卷组,接着,从逻辑卷组中划分出逻辑卷,并进行格式化和挂载
    2025-02-02
  • linux虚拟机配置静态IP地址的完整步骤

    linux虚拟机配置静态IP地址的完整步骤

    这篇文章主要给大家分享介绍了关于linux虚拟机配置静态IP地址的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • 详解在CentOS下搭建自己的Git服务器

    详解在CentOS下搭建自己的Git服务器

    本篇文章主要介绍了详解在CentOS下搭建自己的Git服务器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”

    解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End W

    这篇文章介绍了解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 虚拟机安装linux系统无法上网的解决方法

    虚拟机安装linux系统无法上网的解决方法

    这篇文章主要为大家详细介绍了虚拟机安装linux系统无法上网的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Ubuntu环境编译安装PHP和Nginx的方法

    Ubuntu环境编译安装PHP和Nginx的方法

    这篇文章主要介绍了Ubuntu环境编译安装PHP和Nginx的方法,较为详细的分析了Ubuntu环境编译安装PHP和Nginx的具体步骤、相关命令与操作技巧,需要的朋友可以参考下
    2019-08-08
  • 详解Linux patch命令参数及用法

    详解Linux patch命令参数及用法

    本篇文章文章主要介绍了linux patch命令,此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作。有兴趣的可以了解一下。
    2016-11-11
  • Linux漏洞扫描工具lynis使用方法解析

    Linux漏洞扫描工具lynis使用方法解析

    这篇文章主要介绍了Linux漏洞扫描工具lynis使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • VMware 12 下 Ubuntu 16.04 安装图文教程

    VMware 12 下 Ubuntu 16.04 安装图文教程

    这篇文章主要为大家详细介绍了VMware 12 下 Ubuntu 16.04 安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Linux stat命令的使用

    Linux stat命令的使用

    这篇文章主要介绍了Linux stat命令的使用,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下
    2020-08-08

最新评论