在GDB(GNU调试器)中,您可以使用以下命令来实现这些功能:
-
单步执行进入你感兴趣的函数:
- 使用
step(简写为s)命令来单步执行,并进入函数内部。
- 使用
-
单步执行跳过你不感兴趣的函数:
- 使用
next(简写为n)命令来单步执行,但是跳过函数调用,直接执行函数体内的语句。
- 使用
-
运行到函数末尾:
- 使用
finish(简写为fin)命令来继续执行,直到当前函数执行完毕并返回。
- 使用
-
打印变量或寄存器的值:
- 使用
print(简写为p)命令来打印变量或寄存器的值。例如:p variable打印变量variable的值。
- 使用
-
扫描内存:
- 使用
x命令来扫描内存。例如:x/nfu address,其中n表示扫描的单位长度,f表示显示格式,u表示重复次数,address是要扫描的内存地址。例如:x/4xw &variable扫描变量variable的前 4 个字(32位)的十六进制值。
- 使用
-
查看调用栈:
- 使用
backtrace(简写为bt)命令来查看调用栈,显示当前的函数调用关系和各函数的参数和返回地址。
- 使用
-
设置断点:
- 使用
break(简写为b)命令来设置断点。例如:b function在函数function的第一条指令处设置断点。
- 使用
-
设置监视点:
- 使用
watch命令来设置监视点,当被监视的表达式的值发生变化时,程序会停下来。例如:watch variable监视变量variable的值。
- 使用
这些命令可以帮助您在调试过程中控制程序的执行流程,并查看相关的变量和内存内容。您可以在GDB中使用help命令来获取更详细的帮助信息,例如help break将显示有关break命令的更多信息。
要查看断点列表和监视点列表,您可以使用以下命令:
-
查看断点列表:
- 使用
info breakpoints(简写为info b)命令来查看当前已设置的断点列表。该命令将显示所有已设置的断点,包括断点编号、断点类型、断点位置等详细信息。
- 使用
-
查看监视点列表:
- 使用
info watchpoints(简写为info watch)命令来查看当前已设置的监视点列表。该命令将显示所有已设置的监视点,包括监视点编号、监视点类型、监视点表达式等详细信息。
- 使用
这些命令将提供有关已设置的断点和监视点的信息,以便您了解当前调试会话中的各个断点和监视点。
补充
c: continue the program.r: start the program.