gbd的概念与常用指令

gbd的概念与常用指令GDB GNU 工程调试器 让你看到发生了什么在另一个程序执行时 内部 它 或者另一个程序在它坠毁的那一刻正在做

大家好,欢迎来到IT知识分享网。

1.在linux系统下的警告和错误,当程序出下bug时候,linux终端会给大家两种不同的信息

警告(warning):有时候警告是不影响可执行程序的产生

错误(error):错误如果不改正,是不能生产可执行程序的

gbd的概念与常用指令包含行 列  错误所在代码 错误原因  错误代码行

2.什么是GDB?

GDB,GNU工程调试器,让你看到发生了什么 在另一个程序执行时“内部”它 – 或者另一个程序 在它坠毁的那一刻正在做。

GDB 可以做四种主要的事情(加上其他支持的事情 其中)帮助您捕获 ACT 中的错误:

  • 启动程序,指定可能影响其行为的任何内容。
  • 使程序在指定条件下停止。
  • 检查程序停止时发生了什么。
  • 更改程序中的内容,以便进行试验 纠正一个 bug 的影响,然后继续了解另一个 bug。

3.使用GDB

1.准备一个c语言程序

2.编译程序,编译选项中需要加上-g

g++ -g .cpp -o  *

3.启动gdb调试

gdb ./*

gbd的概念与常用指令

4.gdb常用指令

quit(q):表示退出gdb 

run(r):表示可执行程序,如果没有设置断点,则从头执行文件

list (l):默认展示可执行文件的10行

list m,n 从m到n行信息

list main 展示main中间10行

gbd的概念与常用指令

break(b):表示设置断点,当调试器将程序运行到断点所在位置后,会暂停于此

break 行号:表示在某行设置断点

break func:表示在func指定位置设置断点

info break:查看所有断点的信息

delete breakpoint 断定编号:表示删除指定的断点

gbd的概念与常用指令

gbd的概念与常用指令

next(n):表示执行下一条语句

continue(c):表示从断点处继续向后执行,直到遇到下一个断点或者程序结束

step(s):能够跳入指定函数中,查看相关函数内部代码

print(p)变量名/地址:表示打印指定变量或地址信息

set variable 变量名=值:表示给某个变量设置相关的值

gbd的概念与常用指令

5.gdb使用小技巧

shell:后面可以跟终端指令,表示执行终端相关操作

gbd的概念与常用指令

set logging on:设置设置开启日志功能,会在当前目录中生成一个gdb.txt文件记录接下来的调试

gbd的概念与常用指令

watchpoint:观察点,如果设置的观察点的值发生改变,则会将该值的旧值和新值全部展示出来

watch *+变量地址

6.gdb调试出错的文件

当一个可执行程序出现错误时,会产生一个core文件,用于查看相关错误信息

gbd的概念与常用指令

linux系统默认是不产生core文件,需要进行相关设置后才能产生

通过ulimit-a查看

gbd的概念与常用指令

open files 1024大小  pipe size 8   0没有核文件

通关 ulimit -c unlimited来设置core文件的个数

gbd的概念与常用指令

执行可执行程序,如果程序有问题,会生成core文件

7.gdb调试其他正在执行文件

./可执行程序 &:表示将可执行程序后台运行,不占用当前终端

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/158884.html

(0)
上一篇 2025-01-17 16:00
下一篇 2025-01-17 16:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信