首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Hi, Python

    GDB 调试

    本文链接:https://blog.csdn.net/weixin_40313634/article/details/88619906 实验楼值GDB常用命令实战课程学习记录 1. 安装工具: sudo apt-get install gdb 2. 编译可调式程序: gcc bugging.c -o bugging -g -m32 -o: 生成的可执行文件的名字。 -g: 生成的程序允许gdb 调试。 -m32:生成32位的程序。默认,程序位数和OS位数相同。 编译32位程序时报错:fatal error: sys/cdefs.h: 没有那个文件或目录。 调试: 开始调试:gdb bugging 结束调试:quit 断点在循环中时: enable once Num // 断点hit 一次后,失效。

    1.9K30发布于 2019-09-29
  • 来自专栏转载gongluck的CSDN博客

    学习GDB

    1 简介      GDB(GNU Debugger)是GCC的调试工具。 3 启动GDB 的方法      gdb program      program 也就是你的执行文件,一般在当前目录下。 查看修改变量的值      (gdb) ptype width -- 查看变量width的类型           type = double      (gdb) p width  -- 打印变量width 的值           $4 = 13      你可以使用set var命令来告诉GDB,width不是你GDB的参数,而是程序的变量名,如:           (gdb) set var width 当程序停下来以后,      GDB会报告程序停在了那个文件的第几行上。你可以用list命令来打印程序的源代码。默认打印10行,还是来看一看查看源代码的GDB命令吧。      

    1.9K80发布于 2018-03-08
  • 来自专栏IT探索

    gdb用法

    1:gdb打印动态数组: x=(int*)malloc(25*sizeof(int)); p *x@25 或者 p (int [25])*x 完整打印字符串的值: set print elements

    84010发布于 2018-08-02
  • 来自专栏ccf19881030的博客

    GDB文档

    GDB官方文档:GDB Documentation 如下图所示: ? 官网提供了PDF、HTML各种版本,如下: Debugging with GDB gdb.pdf.gz 2638 KB gdb.dvi.gz 1033 KB gdb.ps.gz 1499 KB gdb.html.tar.gz

    3.6K20发布于 2020-09-29
  • 来自专栏ljw

    gdb调试

    理解 自己总结 gdb会记住历史命令,按一次n,回车以后再回车还是n -g才是debug debug才有调试信息,默认的没有 mycode是可执行程序,再gdb这个可执行程序 q退出/quit list

    41010编辑于 2024-10-18
  • 来自专栏各类技术文章~

    GDB调试

    回车在GDB相当于重复上一个命令。 启动GDB运行程序 运行GDB调试a.out程序有以下几种方式: 方式一:直接运行gdb,然后在gdb中执行“file a.out”加载程序。 方式二:gdb <program>,命令行给出可执行程序运行,即运行“gdb a.out” 方式三:gdb <program> <core_file>,带core文件运行,“gdb a.out /tmp 方式五:对运行中的a.out,可以先按方式二启动,然后在gdb中中心“attach 19475”调试运行中的a.out 进入到GDB后,可以通过help命令来获取帮助,GDB对命令做了分类,要获取详细说明可以查看 暂停、恢复程序运行 调试程序,首先是要让程序是某些感兴趣的点上停下来,GDB有以下几种方式通知GDB暂停程序的运行:断点、观察点、捕捉点(GDB中这三种都统称为断点breakpoints)、信号、线程停止 (gdb) set $i = 0 (gdb) p arr[$i++] $i就是方便变量,后面通过回车就可以不断打印arr中的值。

    2.8K10编辑于 2021-12-24
  • 来自专栏【计网】Cisco

    GDB调试技巧】提高gdb的调试效率

    gdb的启动 准备内容 一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,必须要把调试信息加到可执行文件中。 gdb program core 用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。 gdb program 1234 如果程序是一个服务程序,那么可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。 GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb的help查看。 gdb技巧 1. gdb小技巧汇总 gdb技巧挺多的,比如说直接回车是继续执行上一次的代码 巧用tab补全 1. 比如输入b连续按下两次tab,可以查看gdb的所有b开头的gdb指令 2.

    69610编辑于 2024-04-23
  • 来自专栏云深之无迹

    GDB调试学习

    简介 GDB是GCC的调试工具。其功能如下: 启动程序,使程序按自定义形式运行; 使程序停止指定断点位置; 程序停止后,检查程序执行中的相应情况; 动态改变程序执行环境。 gdb调试 能进行GDB调试,一般在编译过程中,需使用-g参数。如果不使用-g参数,则在gdb调试过程中,将不能得到程序的函数名、变量名等信息,而只能看见运行时内存地址。 q:退出gdb调试环境。 help [命令名称]:gdb帮助命令,提供对GDB各种命令的解释说明。 如果指定了“命令名称”参数,则显示该命令的详细说明;若果没有指定参数,则分类显示所有GDB命令,共用户进一步浏览和查询。 cd dir:运行GDB,使用dir作为gdb的工作目录。 gdb filename // 其中filename为可执行文件名 gdb filename core // core是程序core dump产生的文件,产生core文件,需设置栈大小无线使用ulimit

    1.8K20发布于 2020-10-23
  • 来自专栏蓝天

    GDB高级技巧

    GDB高级技巧 yijian 2009-2-22 难得有雅兴,边动手边记录操作步骤,本文主要示例一些平常较少使用到的GDB功能,掌握这些用法有助于提高GDB调试和解决问题的能力。 1) 查看宏 默认情况下,在GDB中是不能查看宏的值及定义的,但通过如下方法,则可以达到目的: 编译源代码时,加上“-g3 -gdwarf-2”选项,请注意不是“-g”,必须为“-g3”,查看宏的值使用命令 使用“rb”命令,如果执行“rb”时不带参数,则表示在所有函数处打一个断点,“rb”后面可以接一个符合正则表达式的参数,用来对符合正则表达式的所有函数打断点 4) .gdbinit文件 GDB在启动时 如果想在命令执行完,再执行某个或某些命令,则: #define hookpost-print echo ----------\n end 7) GDB中循环 GDB支持if/else/while /loop_break/loop_continue,如: (gdb) set $x=1 (gdb) while $x==1  >p $x  >set $x=0  >p $x  >end -

    1.8K10发布于 2018-08-10
  • 来自专栏giantbranch's blog

    gdb命令总结

    values contained in a Fortran COMMON block info copying -- Conditions for redistributing copies of GDB List the variables local to a scope info selectors -- All Objective-C selectors info set -- Show all GDB 不过好像只能看一层 where 好像显示所有调用栈 调试 调试core文件(ulimit -c unlimited开启不限制core文件大小,因为默认是0) core文件没设置的话应该默认在当前目录 gdb 程序名 core文件路径 或者 gdb 程序名 –core core文件路径 调试命令 r 运行 c 继续运行,直到碰到断点或异常才会停止 ni 单步 si 步入 jump 跳到那里执行 >echo rdx= >print $rdx >x /20gx 0x620000 >end gdb-peda$ 给原有断点加上条件 这个是不用加if了 condition <breakpoint_Num

    31310编辑于 2024-12-31
  • 来自专栏编程从踩坑到跳坑

    gdb基本用法

    列出从第几行开始的源代码 list 函数名 列出某个函数的源代码 next(或n) 执行下一行语句 print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数 quit(或q) 退出gdb 命令 描述 watch 设置观察点 info(或i) watchpoints 查看当前设置了哪些观察点 x 从某个位置开始打印存储单元的内容,全部当成字节来看,而不区分哪个字节属于哪个变量 资料 gdb

    92420发布于 2020-12-28
  • 来自专栏架构师成长之路

    gdb调式程序

    gdb调式程序 最近要调试PHP源代码,使用工具GDB. 1. GDB简介 GDB是Linux/Unix下一个GNU调试程序,是用来调试C与C++程序的强力调试器。 GDB能够使用这些调试信息. (gdb) 12 prints(i); (gdb) hello 2 11 for(i=1;i<6;i++){ (gdb) 12 prints(i); (gdb) hello prints(i); (gdb) hello 5 11 for(i=1;i<6;i++){ (gdb) 15 } (gdb) 5)逐条执行并进入函数: 用start命令重新来过,step命令( = 1 (gdb)

    76420编辑于 2022-04-14
  • 来自专栏源懒由码

    linux gdb调试

    目前觉得比较重要的就是: 1.设置断点: gdb命令 break,也可以用 b 。 比如, b cyc::TcpClient::onMessage 2.查看参数 gdb命令 print,也可以 p。方法 p para.显示一次。 3.一直显示 gdb命令 display,方法 display para。 取消的话 undisplay 编号 4.列出信息 gdb命令 info,info break, info display 5.调试 单步调试 n,进入函数的单步调试 s,跳到下一个断点 c 6.读取文件 gdb命令 file , file path. 7.执行 gdb 命令 run, run args. 8.显示代码 gdb 命令 list,list [行号] 之后可以按 Enter 继续显示

    5.7K32发布于 2020-10-10
  • 来自专栏xcywt

    gdb 自动调试

    记录一些GDB调试相关的东西。 coredump设置无限大小。 gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" MobileServer coreTmp/core.MobileServer.1692778494 整了一个脚本: echo "GDB调试工具. LOGS/COREDUMPLOG_"$v_time".txt" echo "要调试的程序为:"$EXE_NAME" 最终的core文件为:"$core_file_new" 输出文件为:"$outFile gdb

    49620编辑于 2023-08-26
  • 来自专栏jiajia_deng

    gdb 调试基础

    如果使用gdb来调试,这种问题就可以迎刃而解了。gdb 可以完全操控程序运行,让程序走就走,让程序暂停就暂停,还可以随时查看程序运行时内部变量的值等信息。 使用 gdb 调试程序必须保证符合以下两个条件。 程序可以正常编译通过 程序编译时,必须用 -g 选项 // 加入 -g 选项时程序可以被调试 gcc main.c -o main -g 【开始调试】 要调试一个程序,你只需要输入命令 “gdb 被调试程序名 ” 就可以了,如 gdb main 【调试中列出源码】 当进入 gdb 调试状态后,程序会等待你输入调试的命令,此时,你可以输入 list 命令(也可以使用简写 l),列出程序的源码,来决定对哪一个逻辑进行调试 (gdb) delete 2 (gdb) info break Num Type Disp Enb Address What 1 breakpoint

    53020编辑于 2023-10-20
  • 来自专栏Golang语言社区

    GDB使用详解

    一、打开GDB 1、gdb filename 加载该文件到gdb 2、gdb file filename 如果gdb filename失败,可以在打开gdb以后,通过file来加载调试文件 3、gdb *注意-g,在linux下用gcc编译时,如果不加-g,编译器会进行优化,就不会生成调试信息,无法调试,也可以使用-ggdb,这是gcc为gdb提供的更详细的调试信息,别的调试器无法使用。 until:可以运行程序直到退出循环体; finish:运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息; watch:设置一个监视点,一旦被监视的“表达式”的值改变,gdb 的断点10次以后才触发; kill:将强行终止当前正在调试的程序; help 命令:help 命令将显示“命令”的常用帮助信息; call 函数(参数):调用“函数”,并传递“参数”,如:call gdb_test 显示源代码和反汇编窗口; display: 在每次单步进行指令后,紧接着输出被设置的表达式及值; stepi或nexti:单步跟踪一些机器指令; Ctrl + L:刷新窗口; quit:简记为 q ,退出gdb

    7.9K100发布于 2018-03-22
  • 来自专栏悟空被FFmpeg玩

    交叉编译gdb

    环境QQ2440配套的环境 由于之前习惯了用gdb调试coredump,所以,打算自己编一个QQ2440上的gdb文件 很早以前用的是gdbserver,后来发现,有的时候没有网络环境的时候,还真就得有一个 gdb,所以,编译了一个静态的gdb [root@T-bagwellgdb]# ll gdb-rwxr-xr-x 1 root root 11937427 2009-09-14 07:23 gdb[root termcap,然后暂时先存着 然后把gdb里的configure改了一下,我做成了patch,在附件中能看到 文件: gdb-6.8-patch-for-QQ2440.patch.gz 大小: 在configure配置gdb环境时 .. -O2 -static -o gdb gdb.o libgdb.a ..

    3.9K20发布于 2019-03-05
  • 来自专栏半生瓜のblog

    【Linux】GDB调试

    GDB调试 GDB是GUN发布的一个强大的程序调试工具,也是Linux程序员不可或缺的一大利器。 安装GDB 注意安装你所需要的版本。 wget http://ftp.gnu.org/gnu/gdb/gdb-8.1.1.tar.gz tar -zxvf gdb-8.1.1.tar.gz cd gdb-8.1.1 . /configure make make install ---- 启动GDB 使用GDB的前提。 gcc -g hello.c -o hello 启动GDB调试。 gdb hello GDB和Shell一样支持命令补全。。 ---- 获取帮助命令 GDB将命令分为12个大类,使用命令 “help 子类别”,可以查看每个类下面的详细帮助。 bt ---- 退出GDB quit 调试完毕后,使用quit命令,缩写为q,退出gdb程序。 q

    5.1K50编辑于 2023-05-13
  • 来自专栏网络信息安全

    KaLi安装gdb

    Kali linux 的gdb安装 一、安装GDB step 1 首先要检查一下自己是否安装过gdb了 终端中输入gdb -v即可 step2 直接在终端中用wget命令下载:wget http ://ftp.gnu.org/gnu/gdb/gdb-8.0.1.tar.gz,这是一个压缩包 wget http://ftp.gnu.org/gnu/gdb/gdb-8.0.1.tar.gz step 3 解压刚才下载的压缩包,指令如下 tar -zxvf /home/kali/Desktop/gdb-8.0.1.tar.gz /home/kali/Desktop/是我的文件位置 step 4 check文件,大概需要花费3,4min的时间) make 3.sudo make install,最后一步了,安装即可 sudo make install 4.检查,有两种方法 一种是文章最开始的gdb -v 第二种是直接在终端输入gdb,出现下图即可 二、GDB插件peda的安装 在确保安装好gdb之后进行 在终端中输入两行指令即可 git clone https://github.com/

    2.1K10编辑于 2024-03-12
  • 来自专栏linjinhe的专栏

    GDB使用小结

    基本操作 命令 说明 gdb exceFile 不带命令行参数 gdb -args execFile arg0 ... argn 带命令行参数 r 开始执行(run的简写)。 正在执行的gdb可以使用source ~/.gdbinit。

    1.1K60发布于 2018-06-06
领券