当前位置: 首页 > news >正文

网站搜索要怎么做桥头镇做网站

网站搜索要怎么做,桥头镇做网站,龙岩网站建设套餐报价,容桂新网站建设文章目录 Step1:安装GDB1.1、包管理器安装1.2、下载源码编译安装 Step2:编译程序时添加调试信息Step3:GDB启动、退出、查看代码Step4:GDB断点操作Step5:GDB调试操作5.1 单步调试5.2 多进程调试 调试是软件开发中非常重…

文章目录

  • Step1:安装GDB
    • 1.1、包管理器安装
    • 1.2、下载源码编译安装
  • Step2:编译程序时添加调试信息
  • Step3:GDB启动、退出、查看代码
  • Step4:GDB断点操作
  • Step5:GDB调试操作
    • 5.1 单步调试
    • 5.2 多进程调试

调试是软件开发中非常重要的一环,它可以帮助我们找到程序中的错误并修复它们。在Linux系统中,GDB是一个非常流行的调试工具,几乎每个开发者都会使用它来调试程序。本文将详细介绍如何使用GDB调试程序,如果你觉得内容对你有帮助,那么请不要忘记点赞和收藏,这将对我产生巨大的鼓励。让我们一起开始这段学习之旅吧!

Step1:安装GDB

1.1、包管理器安装

在Linux系统中,可以使用包管理器来安装GDB。例如,在Ubuntu系统中,可以使用以下命令来安装GDB:

sudo apt-get install gdb

1.2、下载源码编译安装

# 1. 打开终端,使用以下命令下载GDB源码压缩包到当前目录
wget http://ftp.gnu.org/gnu/gdb/gdb-9.2.tar.gz  或者 wget https://ftp.gnu.org/gnu/gdb/gdb-12.1.tar.xz# 2. 解压GDB源码压缩包到当前目录
tar -zxvf  gdb-12.1.tar.xz# 3. 进入GDB源码目录
cd gdb-12.1# 4. 运行以下命令来配置GDB:这将在`/usr/local/gdb`目录下安装GDB,并启用系统读取行模式和禁用Guile语言
./configure --prefix=/usr/local/gdb --with-system-readline --without-guile# 5. 运行以下命令来编译GDB源代码并生成可执行文件
make # 6. 运行以下命令来安装GDB到系统中,并将其添加到系统路径中
sudo make install# 验证GDB是否成功安装:如果GDB成功安装,将输出GDB的版本信息
gdb --version

Step2:编译程序时添加调试信息

在编译程序时,需要使用-g选项来添加调试信息。例如,如果要编译名为test.c的程序,可以使用以下命令:

gcc -g -Wall test.c -o test

-g 的作用:在可执行文件中添加源代码信息,比如可执行文件第几条对应源码第几行
-Wall 的作用: 在不影响程序行为的情况下打开所有warning,发现更多的问题,避免不必要的BUG

这将生成一个带有调试信息的可执行文件test

Step3:GDB启动、退出、查看代码

# 启动GDB并加载可执行文件
gdb test
# 退出
quit# GDB使用帮助
help# 给程序设置参数/获取设置参数
set args 10 20
show args# 查看当前文件代码
1ist/1      (从默认位置显示)
1ist/1 行号  (从指定的行显示)
list/1 函数名(从指定的函数显示)# 查看非当前文件代码
list/1 文件名:行号
list/1 文件名:函数名# 设置显示的行数
show list/listsize
set list/listsize 行数

Step4:GDB断点操作

# 设置断点,b或者break
b/break 行号
b/break 函数名
b/break 文件名:行号
b/break 文件名:函数# 查看断点,删除断点
i/info b/break
d/del/delete 断点编号# 设置断点无效和生效
dis/disable 断点编号
ena/enable 断点编号# 设置条件断点(一般用在循环的位置)
b/break 10 if i==5# 要查看当前作用域内的变量值,可以使用`print`命令。例如,要查看变量`x`的值,可以输入以下命令:
print x

Step5:GDB调试操作

5.1 单步调试

在GDB中,可以使用以下命令来单步执行程序:

# 运行gdB程序
start(程序停在第一行)
run(遇到断点才停)# 继续运行,到下一个断点停
c/continue# 向下执行一行代码(不会进入函数体)
n/next# 向下单步调试(遇到函数进入函数体)
s/step
finish(跳出函数体)# 变量操作
p/print变量名(打印变量值)
ptype 变量名(打印变量类型)# 自动变量操作
display num(自动打印指定变量的值)
i/info display
undisplay 编号# 其它操作
setvar变量名=变量值
until(跳出循环)

要查看当前的调用栈,可以使用backtrace命令。例如,要查看当前调用栈的详细信息,可以输入以下命令:
backtrace

5.2 多进程调试

使用GDB调试的时候,GDB默认只能跟踪一个进程,可以在fork函数调用之前,通过指令设置GDB调试工具跟踪父进程或者是跟踪子进程,默认跟踪父进程。

# 设置调试父进程或者子进程
set follow-fork-mode [parent(默认)| child]# 设置调试模式,默认为on,表示调试当前进程的时候其它的进程继续运行,如果为off,调试当前进程的时候其它进程被GDB挂起。
set detach-on-fork [on | off]# 查看调试的进程
info inferiors# 切换当前调试的进程
inferior id# 使进程脱离 GDB 调试
detach inferiors id

在这篇详尽的gdb教程的结尾部分,我真心希望大家能够点赞并收藏。这不仅是对我个人努力的认可,也是对我持续分享知识的热情的鼓励。每一个小小的赞和收藏都是对我最大的支持,让我有动力继续创作更多有价值的内容。让我们一起在学习和探索的道路上互相支持,共同进步!

http://www.yayakq.cn/news/293895/

相关文章:

  • 网站的内链优化怎样做廊坊企业网站排名优化
  • 学校网站建设论文新办公司网上核名在哪个网站做
  • 网站空间域名申请网站外贸知识最全外贸业务流程
  • php视频网站开发智联企业登录入口
  • 网站建设学什么书做网站用什么语音
  • 丹阳火车站片区规划黄石网站制作公司
  • PHP网站开发项目式教程上海企业网站制作费用
  • 网站素材网站贵阳市建设厅官方网站
  • 在线网站制作模拟私企建筑公司排名
  • php网站cms网站如何做收录
  • 简单的英文网站源码2023年8月新冠
  • 网站导航是什么企业所得税优惠
  • 哈尔滨网站建设oeminc郑州网站建设网站制作
  • 合肥网站制作推广上海省住房与城乡建设厅网站
  • 网站建设用啥系统好深圳网站设计精选刻
  • 房屋设计图 农村做网站优化两年遇到的SEO常态
  • 建设银行义乌分行网站网站是先解析后备案吗
  • 建设网站装配式建筑楼房个人网站模板源码下载
  • 深圳宝安网站设计网页一键生成小程序
  • 做个购物网站wordpress友链代码
  • 湛江网站建设制作价格孝义网站开发公司
  • 网页制作网站开发的论文诸城 建设外贸网站
  • 有什么网站可以兼职做翻译免费快递网站源码
  • 网站制作费一般多少电子商务与网站建设的发展综述
  • 微信分享接口网站开发 php开展我国电子网站建设
  • 1997年网站建设项目青海互动网站建设
  • 现在企业做网站一般用什么框架少儿编程哪个品牌好
  • 项目网站开发js放的位置不错的建设工程人员查询
  • 番禺建设网站服务杭州的服装网站建设
  • 什么网站有加工外发做的做网站前台需要学什么 后台