gdb
当程序出现 “段错误 (核心已转储)” 的错误时,这通常意味着你的程序访问了无效的内存地址,导致程序崩溃。
你可以使用 gdb 调试器来查找在程序的哪一行代码导致了这个错误。下面是使用 gdb 调试器查找错误的一般步骤:
在编译你的程序时,使用 -g 选项生成调试信息。这样 gdb 就能够找到程序中的源代码和行号,如:
$(CC) $(SRCS) $(CFLAGS) $(LDFLAGS) -g
使用 gdb 运行你的程序。你可以在命令行中输入以下命令来运行程序:
gdb <程序名>
命令说明
r 使用 run 命令运行你的程序。你可以在 gdb 的命令提示符下输入以下命令来运行程序
next 单步调试。你可以在 gdb 的命令提示符下输入以下命令来单步调试
bt 当程序崩溃时,gdb 会提示你 “段错误 (核心已转储)”。你可以使用 bt 命令查看调用堆栈
list 查看源代码。你可以在 gdb 的命令提示符下输入以下命令来查看源代码
up 查看上一个函数的源代码,使用 down 命令查看下一个函数的源代码
down 查看下一个函数的源代码
where 查看当前行号。你可以在 gdb 的命令提示符下输入以下命令来查看当前行号
print <变量名> 查看变量的值。你可以在 gdb 的命令提示符下输入以下命令来查看变量的值
watch <表达式> 设置断点。你可以在 gdb 的命令提示符下输入以下命令来设置断点