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

马鞍山做网站公司合肥seo整站优化

马鞍山做网站公司,合肥seo整站优化,酒店定房网站开发,珠海网站开发公司文章目录 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.hkea.cn/news/76242/

相关文章:

  • 做推送的网站推荐今日新闻摘抄50字
  • 想在自己的网站做支付优化公司治理结构
  • 国内一家做国外酒店团购的网站网络推广优化是干啥的
  • 手机3d动画制作软件重庆网络seo公司
  • 青海和城乡建设厅网站石家庄自动seo
  • 建站网址是多少深圳市seo上词多少钱
  • 应用网站开发创建网站花钱吗
  • 2023太原疫情优化设计答案大全
  • 创新的专业网站建设适合小学生的新闻事件
  • 政府机关备案网站百度竞价什么意思
  • 广元专业高端网站建设seo视频
  • 烟台网站建设诚信臻动传媒百度网络营销中心
  • 贵阳网站建设搜王道下拉重庆seo网络推广关键词
  • 大型 网站的建设 阶段百度官方网站下载
  • 江苏专业做网站的公司百度地图导航网页版
  • 怎么去投诉做网站的公司宁波seo外包推广软件
  • 网络营销跟做网站有什么区别线上推广如何引流
  • 如何进行网店推广seo排名优化怎样
  • 什么建站程序好收录上海网络公司seo
  • 电子商务网站建设投资预算小程序平台
  • 广州外贸营销型网站成都移动seo
  • 如何韩国视频网站模板下载 迅雷下载sem竞价托管费用
  • 做网站去哪个平台seo培训学院
  • 网站移动端优化的重点有哪些营销策略ppt
  • 养车网站开发搜狗seo快速排名公司
  • 企业电子商务网站建设武汉百度快速排名提升
  • 建一个网站的流程今天刚刚发生的新闻
  • 建立网站请示优化服务是什么意思
  • 有一个做场景动画的网站山东seo费用多少
  • 阿里云服务器的网站备案流程图营销推广有哪些形式