![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GDB
文章平均质量分 74
泽箬酱咧
杭州体面厂一枚嵌入式软件工程师,额外懂点前端和移动端技术栈。
展开
-
GDB基础知识之寄存器和程序跳转10(完结)
要查看寄存器的值,很简单,可以使用如下命令:查看寄存器的情况。(除了浮点寄存器)查看所有寄存器的情况。(包括浮点寄存器)查看所指定的寄存器的情况。寄存器中放置了程序运行时的数据,比如程序当前运行的指令地址(ip),程序的当前堆栈地址(sp)等等。你同样可以使用 print 命令来访问寄存器的情况,只需要在寄存器名字前加一个$符号就可以了。如:p $eip。原创 2024-03-14 20:10:15 · 315 阅读 · 0 评论 -
GDB基础知识之信号03
信号可以以 SIG 开头或不以 SIG 开头,可以用定义一个要处理信号的范围(如:SIGIO-SIGKILL,表示处理从 SIGIO信号到 SIGKILL 的信号,其中包括 SIGIO,SIGIOT,SIGKILL 三个信号),也可以使用关键字 all 来标明要处理所有的信号。UNIX 定义了许多信号,比如 SIGINT 表示中断字符信号,也就是 Ctrl+C 的信号,SIGBUS表示硬件故障的信号;当被调试的程序收到信号时,GDB 不会停住程序的运行,但会打出消息告诉你收到这种信号。原创 2024-03-02 17:23:28 · 172 阅读 · 0 评论 -
GDB基础知识之暂停/恢复程序02
当以 gdb 方式启动 gdb 后,gdb 会在 PATH 路径和当前目录中搜索的源文件。如要确认 gdb 是否读到源文件,可使用 l 或 list 命令,看看 gdb 是否能列出源代码。没有搜索到可以在gdb中通过dir命令设置源码搜索路径。原创 2024-03-02 16:55:38 · 1139 阅读 · 0 评论 -
GDB基础知识之命令面貌01
加载符号表后,GDB 将能够根据符号名称查找对应的函数和变量,并提供符号级别的调试信息,如断点设置、变量监视和栈跟踪等。方法2:先用 gdb 关联上源代码,并进行 gdb,在 gdb 中用 attach,命令来挂接进程的 PID,并用 detach 来取消挂接的进程。方法1:在 UNIX 下用 ps 查看正在运行的程序的 PID(进程 ID),然后用 gdb PID 格式挂接正在运行的程序;如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。原创 2024-03-02 15:17:30 · 301 阅读 · 0 评论 -
GDB基础知识之线程停止和查看栈信息04
比如:函数地址,调用函数的地址,被调用函数的地址,目前的函数是由什么样的程序语言写成的、函数参数地址及值、局部变量的地址等等。如果你要查看某一层的信息,你需要在切换当前的栈,一般来说,程序停止时,最顶层的栈就是当前栈,如果你要查看栈下面层的详细信息,首先要做的是切换当前栈。如果你要查看某一层的信息,你需要在切换当前的栈,一般来说,程序停止时,最顶层的栈就是当前栈,如果你要查看栈下面层的详细信息,首先要做的是切换当前栈。如果你程序是多线程的话,你可以定义你的断点是否在所有的线程上,或是在某个特定的线程。原创 2024-03-02 17:23:37 · 815 阅读 · 1 评论 -
GDB基础知识之查看运行时数据06
在调试程序时,当程序被停住时,可以使用 print 命令(简写命令为 p),或是同义命令 inspect 来查看当前程序的运行数据。print 命令的格式是:是表达式,是所调试的程序的语言的表达式(GDB 可以调试多种编程语言),是输出的格式,比如,如果要把表达式按 16 进制的格式输出,那么就是/x。原创 2024-03-05 20:14:57 · 688 阅读 · 0 评论 -
GDB基础知识之查看内存和自动显示 07
在调试过程中,有时需要查看内存的值和内存中的值,本文将介绍如何使用GDB的命令来实现相关操作。原创 2024-03-06 19:11:19 · 473 阅读 · 0 评论 -
GDB基础知识之历史记录和环境变量09
当用 GDB 的 print 查看程序运行时的数据时,每一个 print 都会被 GDB记录下来。GDB 会以$1, $2, $3 .....这样的方式为每一个 print 命令编上号。于是,可以使用这个编号访问以前的表达式,如$1。这个功能所带来的好处是,如果先前输入了一个比较长的表达式,如果还想查看这个表达式的值,可以使用历史记录来访问,省去了重复输入。原创 2024-03-14 19:53:37 · 363 阅读 · 0 评论 -
GDB基础知识之查看源码05
GDB调试时,需要结合源码分析问题和堆栈,如何在GDB中查看源码,本文将给出方法。原创 2024-03-05 13:58:01 · 690 阅读 · 0 评论 -
GDB基础知识之设置显示选项08
这个选项主要是设置数组的,如果数组太大了,那么就可以指定一个来指定数据显示的最大长度,当到达这个长度时,GDB就不再往下显示了。在 C++中,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用的规则显示输出,如果关闭这个选项的话,GDB 就不管虚函数表了。设置字符显示,是否按“\nnn”的格式显示,如果打开,则字符串或字符数据按\nnn 显示,如“\065”。这个选项表示,当显示一个 C++对象中的内容是,是否显示其中的静态数据成员。原创 2024-03-08 17:37:59 · 286 阅读 · 0 评论