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

济南高端定制网站建设百度官方优化软件

济南高端定制网站建设,百度官方优化软件,杨凌做网站,php class 做网站目录 1.gdb如何进入调试界面 2.gdb的一些指令 ​编辑​编辑 3.调试技巧 1.watch 2.set var 条件断点 CGDB 介绍:Linux 下的强大调试工具 1. CGDB 的主要特点 2. 安装 CGDB 在 Ubuntu/Debian 上安装 在 CentOS/RHEL 上安装 在 macOS 上安装(使…

目录

1.gdb如何进入调试界面

2.gdb的一些指令

​编辑​编辑

3.调试技巧

1.watch

2.set var

条件断点

CGDB 介绍:Linux 下的强大调试工具

1. CGDB 的主要特点

2. 安装 CGDB

在 Ubuntu/Debian 上安装

在 CentOS/RHEL 上安装

在 macOS 上安装(使用 Homebrew)

3. 基本使用方法

启动 CGDB

CGDB 界面布局

4. 常用调试命令

基本调试命令(与 GDB 相同)

CGDB 特有操作

5. 示例调试过程

调试示例程序 test.c

编译并调试

调试步骤

6. 高级功能

7. 与 GDB 的区别

8. 总结


1.gdb如何进入调试界面

gdb是一款代码调试的工具,在vscode2022下,我们可以对我们的代码进行调试,发现问题所在,同样的,这么好用的功能在Linux下也不可避免被频繁使用。

首先我们调试的目的是要查找问题。

如果我们在Linux下写一个文件,直接gcc,然后用gdb打开它会无法调试。

这是因为我们的代码有2个版本一个是debug版本,一个是release版本,只有在debug版本下我们才可以进行调试,而gcc默认会将文件发布成release版本,这个时候我们就需要加上-g选项指定gcc将我们的文件编译为debug版本。这个时候我们就可以进入我们的调试界面了

2.gdb的一些指令

vs我们进行编译我们有一些快捷键,比如打断点,逐过程,逐语句,我们的Linux也有一些指令进行这些操作帮助我们进行问题的查找。

        首先b+行号是打断点,b 9就是给弟9行打断点。我们这里b 18给在第18行的代码打上断点,这个时候它的行标就会变色。

同时我们也支持查看我们设置了哪些断点

info b是查断点。

同时我们打断点,查断点,也要支持我们对断点进行删除。

这里我们查看断点时我们可以看到最左边有对断点的编号,我们需要d+断点编号对断点进行删除。

这里我们d 2就对我们第二个断点进行了删除。

同时我们也支持删除所有的断点,d breakpoints是删除所有的断点。

我们调试时如果想让代码跑起来就需要r指令。这个会让我们程序从开始连续执行直到断点处。

这里我们有几个细节需要注意:

细节1:gdb启动调试的时候,只是开启了gdb,被调试的程序并没有运行起来。

细节2:r/run,表示的是在gdb的场景下,启动我们自己的mmycmd程序。

细节3:在没有断点的情况下,r/run就是让我们的程序直接运行直到结束。

细节4:断点的本质功能:让我们的程序,在运行到指定的行,进行暂停

r相当于我们vs2022里的F5,进行程序运行。

我们也支持逐过程,n是逐过程,单步执行,不进入函数内部,相当于F10。

逐语句:s,单步执行,进入函数的内部,相当于F11.

vs下我们支持监视窗口对某个变量值的查看,我们Linux下必须也支持啊!

我们p+变量名就是查看该变量的值,但是这个p只能查看一次,我们vs下监视窗口的变量值是常显示的,我们想让某个变量常显示,就需要 display i进行常显示。

undisplay i 就是对某个值取消常显示,但是注意这个i是编号,而非变量名。

在VS下我们的F5是从一个断点跑到另一个断点,我们的Linux也必须支持这个功能啊!

我们Linux下按c就是从当前位置开始连续执行程序直到程序结束或者运行到下一个断点。

如果我们进入到一个函数但是我们后悔了该怎么办?vs下直接跳转到该行。

我们Linux就得使用finish来执行到当前函数返回然后停止

总而言之,我们使工具进行debug的本质是借助工具帮助我们找到问题所在。

而不是解决问题,解决问题是人或者AI去解决的。

我们在查找的时候也有一定的技巧,我们学过二分查找,这个算法效率比较高,所以我们在实际项目中也可以使用这个算法来进行问题的定位,以断点的方式进行,找到问题的思路,这种一般是在非常复杂的问题我们才搞这个,我们写个100行左右的代码没必要使用这样的方式。当然如果要用也是可以的。

下面继续介绍一些命令:

bt 查看函数调用的堆栈结构

info i查看当前debug的程序信息

info local 查看当前函数内的临时变量


我们的断点是可以被禁用的,是为了保留我们懂得调试痕迹,防止问题再次出现。

禁用断点是:

disable 编号

能禁用我们就要启用,这个时候是

enable 编号


3.调试技巧

1.watch

watch:执⾏时监视⼀个表达式(如变量)的值。如果监视的表达式在程序运⾏期间的值发⽣变化,GDB会暂 停程序的执⾏,并通知使⽤者

2.set var

set var flag=1可以临时改变一下我们变量的值,这个指令就可以把我们的flag临时设定为1.
我们的flag值原来为0,现在我们把它临时设置为1,验证我们出现的错误是否是由于该变量的值错误而导致的。

 

条件断点

我们可以在调试的过程中打条件断点,顾名思义,当满足某个条件的时候我们的断点才生效。
b q if i==30 这个就表示在弟q行如果我们的i值等于30我们就停下来,断点生效。排查逻辑上的错误。
我们也可以给现有的断点添加条件,comdition 2 i==30 给编号为2的断点加上条件。

CGDB 介绍:Linux 下的强大调试工具

CGDB(Curses-based GNU Debugger) 是一个基于 GDB(GNU Debugger) 的增强版调试工具,它在终端环境下提供了类似 图形界面 的调试体验。CGDB 使用 ncurses 库实现了分屏界面,上方显示源代码,下方是 GDB 命令行,使得调试更加直观和高效。


1. CGDB 的主要特点

  • 分屏界面:上方显示源代码,下方是 GDB 命令行,方便查看代码和执行调试命令。

  • 语法高亮:支持代码高亮,提高可读性。

  • 快捷键操作:类似 Vim 的快捷键(支持 hjkl 移动),提高调试效率。

  • 完全兼容 GDB:所有 GDB 命令都可以在 CGDB 中使用。

  • 轻量级:纯终端运行,不需要 GUI 环境,适合远程 SSH 调试。


2. 安装 CGDB

在 Ubuntu/Debian 上安装

bash

sudo apt update
sudo apt install cgdb

在 CentOS/RHEL 上安装

bash

sudo yum install epel-release  # 如果未安装 EPEL 仓库
sudo yum install cgdb

在 macOS 上安装(使用 Homebrew)

bash

brew install cgdb

3. 基本使用方法

启动 CGDB

bash

cgdb <可执行程序>  # 直接调试程序
cgdb -p <PID>     # 附加到正在运行的进程

CGDB 界面布局

text

+----------------------------------+
| 源代码窗口(可浏览和设置断点)    |
|                                  |
|                                  |
|                                  |
+----------------------------------+
| GDB 命令窗口(输入调试命令)      |
+----------------------------------+
  • Esc:切换到源代码窗口(可浏览代码)

  • i:切换到 GDB 命令窗口(输入调试命令)


4. 常用调试命令

基本调试命令(与 GDB 相同)

命令说明
break <行号/函数名>设置断点
run启动程序
next (n)单步执行(不进入函数)
step (s)单步执行(进入函数)
continue (c)继续执行直到下一个断点
print <变量> (p)打印变量值
backtrace (bt)查看调用栈
quit (q)退出调试

CGDB 特有操作

快捷键说明
Esc进入源代码窗口
i进入 GDB 命令窗口
Space在源代码窗口设置/取消断点
/在源代码窗口搜索
o在 GDB 窗口切换布局(水平/垂直)

5. 示例调试过程

调试示例程序 test.c

c

#include <stdio.h>int main() {int a = 10;int b = 20;int sum = a + b;printf("Sum: %d\n", sum);return 0;
}

编译并调试

bash

gcc -g test.c -o test  # 编译时加上 -g 选项生成调试信息
cgdb ./test            # 启动 CGDB

调试步骤

  1. 在 main 函数处设置断点:

    • 按 Esc 进入源代码窗口,移动光标到 int a = 10; 行,按 Space 设置断点。

  2. 按 i 进入 GDB 命令窗口,输入 run 运行程序。

  3. 单步执行:

    • nnext)执行下一行,不进入函数。

    • sstep)进入函数(如 printf)。

  4. 查看变量:

    • p a 打印变量 a 的值。

  5. 继续执行:

    • ccontinue)直到程序结束。


6. 高级功能

  • 多窗口布局:支持水平/垂直分屏(o 切换)。

  • TUI 模式:类似 GDB 的 TUI 模式,但更友好。

  • 自定义配置

    • 配置文件 ~/.cgdb/cgdbrc 可以设置快捷键和主题。


7. 与 GDB 的区别

特性CGDBGDB
界面分屏(代码+GDB)纯命令行
快捷键Vim 风格需自定义
代码浏览直接查看需 list 命令
易用性更高较低

8. 总结

  • CGDB 适合

    • 喜欢终端调试但想要更直观界面的开发者。

    • 需要快速查看代码并设置断点的场景。

  • GDB 适合

    • 纯命令行环境,或需要脚本化调试时。

CGDB 结合了 GDB 的强大功能和 TUI 的便捷性,是 Linux 下 C/C++ 调试的高效工具!

http://www.dtcms.com/wzjs/785085.html

相关文章:

  • 扁平化设计风格的网站模板西安黄页88网企业名录
  • 本作业是网站建设与维护python写网页
  • 定远建设局官方网站4免费网站建站
  • dedecms 食品网站模板做饲料机械的网站
  • 做旅游网站赚钱吗传奇手游代理平台价格表
  • 自己在网站开发的客户怎么联系网站设计做什么的
  • 建设官方网站意义怎么劝客户做网站
  • 关于网站开发的创业计划书邢台企业网站建设咨询
  • php做的网站怎么调试岳阳seo快速排名
  • 怎么选择网站开发网络营销主要做什么
  • 单位建设网站申请信用卡吗wordpress 比较好的插件
  • 注册qq空间网站房地产销售造林种养殖加工承揽项目开发等招商广告
  • 国际销售网站有哪些安装wordpress注意什么意思
  • 查企业免费长沙seo网站管理
  • 酒店网站建设案例商城app免费制作
  • 公司做网站的步骤网站制作2007
  • 上传网站图片不显示安宁网站建设
  • 17做网站广州沙河地址修改wordpress编辑器
  • 做个网站 多少钱网站建设系
  • 织梦网站开发兼职wordpress优化版模板
  • ui设计师是做网站吗百度网盘网址是多少
  • 公司建设网站的费用吗正能量免费软件
  • ssl 加密网站游戏推广好做吗
  • 佛山网站建设方案策划苏州百姓网
  • 代码优化网站排名山西路桥建设集团有限公司网站
  • 摄影网站设计代码影视视频网站怎么做
  • 网站建设金自适应网站案例
  • 手机 做网站网站后台百度商桥代码哪里安装
  • 可以悬赏做任务的叫什么网站做网站和优化
  • 教做网站视频wap建站工具