千家信息网

Linux系统中gdb程序调试工具怎么用

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要为大家展示了"Linux系统中gdb程序调试工具怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Linux系统中gdb程序调试工具怎么用"
千家信息网最后更新 2025年12月02日Linux系统中gdb程序调试工具怎么用

这篇文章主要为大家展示了"Linux系统中gdb程序调试工具怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Linux系统中gdb程序调试工具怎么用"这篇文章吧。

  一、常规调试

  gdb是Linux下常用的程序调试工具,当然前提是用gcc/g++编译时加上-g参数,这样编译出的可执行程序会加上gdb调试信息。

  gdb命令不少,但常用的主要包括如下命令:

  (1)list [file:]functuon

  命令缩写是l,查看源码,不加参数时,向下显示源码,加参数-l时,向上显示源码,默认显示10行。

  也可以设置在某个函数出列出源码,需要注意的是:如果是非成员函数则用file:function即可,如果是类成员函数则用class::functuon。

  (2)edit [file:]function

  命令缩写是e,编辑当前所在的行,也可以编辑某个函数的源码(规则同list)。

  (3)break [file:]function

  命令缩写是b,设置断点,可以设置在某行或某个函数处(规则同list),此外还可以直接用文件名:行号来设置断点。

  (4)info

  命令缩写是i,列表gdb子命令的信息,如:info break, info variables, info stack等。

  (5)run [arglist]

  命令缩写是r,运行程序至断点处停住,run命令之后可以加上调试程序需要的参数。

  (6)next

  命令缩写是n,单步调试执行语句,如果遇到函数也当一条单步语句而不进入函数,类似于VC中的F10。

  (7)step

  命令缩写是s,单步调试执行语句,如果遇到函数会直接进入函数内部,类似于VC中的F11。

  (8)continue

  名利缩写是c,继续运行程序至下一个断点。

  (9)what

  查看变量类型。

  (10)print

  命令缩写是p,打印变量的值。

  (11)backtrace

  命令缩写是bt,查看堆栈信息。

  (12)enter

  回车键,重复执行上一条调试命令。

  (13)help [name]

  显示指定的gdb命令的帮助信息。

  (14)quit

  命令缩写是q,退出gdb。

  gdb调试运行程序时,用gdb .exe加载程序,gdb调试core dump时,用gdb .exe .core加载程序,执行r命令可以开始运行程序。在gdb内编辑完代码后,不需要退出gdb,而直接在gdb里make即可,否则之前设置的断点等信息都付之一炬了。

  二、多线程调试

  (1)info threads

  命令缩写是info thr, 显示当前可调试的所有线程,每个线程会有一个gdb为其分配的ID,后面操作线程的时候会用这个ID,前面有*的是当前调试的线程。

  (2)thread ID

  命令缩写是thr,切换当前调试的线程为指定ID的线程。

  (3)thread apply ID1 ID2 command

  命令缩写规则同上,让一个或者多个线程执行gdb命令command。

  (4)thread apply all command

  命令缩写规则同上,让所有被调试线程执行gdb命令command。

  (5)set scheduler-locking off|on|step

  在调试多线程程序时,使用step或者continue命令调试当前线程时,其它线程也在并发执行,这个命令可以通过off|on|step来控制线程的执行,即:

  off:不锁定任何线程,即所有线程都执行,这是默认值。

  on:只有当前被调试程序会被执行。

  step:在单步的时候,除了next过一个函数的情况以外,只有当前线程会执行。

以上是"Linux系统中gdb程序调试工具怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

命令 线程 缩写 程序 函数 信息 断点 源码 工具 参数 规则 运行 系统 内容 篇文章 语句 帮助 变量 只有 常用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 党员管理信息系统服务器地址 南阳市司法局网络安全培训会 计算机的5个网络安全体系 软件开发在线计划 软件开发维护费包含什么科目 厦门信达股份软件开发岗 局机关网络安全工作制度 近5年中国的网络安全事件 唱歌打分软件开发 理工科三大数据库 网络安全法规教育心得 数据库和会计信息化 与网络安全相关的小论文 第五空间网络安全电影观后感 有关网络安全的英语文章 web软件开发基础知识学习 你知道吗网络安全是什么意思 山东网络安全测评机构 网络安全知识10字小诗 服务器免费安全防护 上海 软件开发加班强度 网络安全工作好找嘛 计算机的5个网络安全体系 华为服务器三个sata盘格式化 武侯区乐淘网络技术工作室 网络安全市场有前景吗 测试贯穿整个软件开发周期 监控服务器的http请求时间 网络安全行动计划实施方案 数据库分离时进程
0