首页 > 其他分享 >gdb

gdb

时间:2023-06-11 18:23:42浏览次数:40  
标签:命令提示符 查看 程序 命令 gdb 源代码

 

当程序出现 “段错误 (核心已转储)” 的错误时,这通常意味着你的程序访问了无效的内存地址,导致程序崩溃。

你可以使用 gdb 调试器来查找在程序的哪一行代码导致了这个错误。下面是使用 gdb 调试器查找错误的一般步骤:

  在编译你的程序时,使用 -g 选项生成调试信息。这样 gdb 就能够找到程序中的源代码和行号,如:

    $(CC) -o  AVencoder $(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 的命令提示符下输入以下命令来设置断点  

 

 

  

  

 

标签:命令提示符,查看,程序,命令,gdb,源代码
From: https://www.cnblogs.com/kernelx/p/17473329.html

相关文章

  • GDB调试
    在编译的时候要加上“-g”选项才可以调试,例如:gcc-g-oprogmain.cmstore.c 参考链接:GDB官方手册:Top(DebuggingwithGDB)(sourceware.org)......
  • Linux系统中GDB调试详细操作方法
    第一:启动在shell下敲gdb命令即可启动gdb,启动后会显示下述信息,出现gdb提示符。添加编译指令:gcc-ga.c-otest打开指令:gdbtest  或者gdb  然后输入:filetest➜examplegdbGNUgdb(Ubuntu8.1.1-0ubuntu1)8.1.1Copyright(C)2018F......
  • [转]比较全面的gdb调试命令
     用GDB调试程序GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大......
  • 使用GDB调试断点信息是gdb动态添加或取消的还是将断点烧录到elf文件的?断点信息是如何
    使用GDB调试断点信息是gdb动态添加或取消的还是将断点烧录到elf文件的?断点信息是如何加载进单片机的并进行加下来的调试运行的? from:GPT-4GDB(GNU调试器)是一个用于调试程序的强大工具,它可以让你设置断点、检查变量和内存、执行单步调试等。在单片机(微控制器)上使用GDB进行调试......
  • gdb学习
    GDB基本gdb命令运行有关命令run(简写r):运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。continue(简写c):继续执行,到下一个断点处(或运行结束)next(简写n):单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体;step(简写s):单步调试如果有函数调用,......
  • gdb_learn
    GDB基本gdb命令运行有关命令run(简写r):运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。continue(简写c):继续执行,到下一个断点处(或运行结束)next(简写n):单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体;step(简写s):单步调试如果有函数调用,则进入函数;......
  • GDB 调试指令
     GDB调试指令arm-none-eabi-gdbexample.elftarext:50000ib  //查看所有断点ir  //查看内存寄存器break16   //设置断点,在源程序第16行处。breakfunc  //设置断点,在函数func()入口处infobreak  //查看断点信息。list    //查看调试文件n......
  • GDB021BE05 HIEE300766R0005确保保护电气装置和人员免受直接和间接接触
    GDB021BE05HIEE300766R0005确保保护电气装置和人员免受直接和间接接触GDB021BE05HIEE300766R0005GDB021BE05HIEE300766R0005 面板保护继电器-漏电继电器(ELR)、接地故障继电器(EFR)和缺相继电器(PFR)在制造配电板时,必须有除断路器以外的一些保护方法,这些保护方法可......
  • gdb调试c++多线程死锁问题初步
    https://blog.csdn.net/zsiming/article/details/126695393 总结:psaux|grepfilename //找出进程IDtop-HpPID //列出进程号为PID下的所有线程gdbatattchPID //用gdb调试正在运行的进程(进程号为PID)(需要sudo权限)threadapplyallbt //这里涉及2个命令:thr......
  • gdb常用操作
    2014-12-12日学习笔记gdb调试一、启动dgb1、源代码编译操作:GCC要带-g选项,目的是让编译器将符号表(对应于程序的变量和代码行的内存地址列表)保存在生成的可执行文件中。这样才能在调试会话过程中引用源代码中的变量名和行号。举例:gcc–g–omainmain.c2、启动启动gdb的方法有以下......