gdb 进入函数内部_gdb调试之一

本文介绍了GDB这个强大的程序调试工具,详细讲解了如何在单进程/线程和多线程环境中进行调试。通过设置断点、查看内存信息、跟踪变量以及操作寄存器等方法,帮助程序员定位和修复程序bug。同时,还涵盖了调试core文件和使用GDB的实用命令技巧。
摘要由CSDN通过智能技术生成

f8b8579659dbe1272619b20fe0240485.png

一、简介

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。目前gdb v10.1,默认支持ada、asm、c、c++、d、fortran、go、minimal、modula-2、objective-c、opencl、pascal、rust语言。

3a21477761f2e696abf3cd3a190bdd0f.png
gdb默认支持的语言

程序员在编译程序时,需加上-g参数,方可将调试信息植入可执行程序,然后运行gdb *.exe 才可对程序进行调试。

a6f73e3f4a9afb84390442086c03029b.png
编译时添加调试信息

调试思路一般是进入程序,设置断点,即让程序运行到断点处自动停止,然后单步运行程序,可单步运行高级语言程序,也可单步运行汇编代码。在程序员自己单步运行程序的时候,程序员可以查看内存栈的信息,寄存器的信息、内存信息、程序中变量等。根据这些信息对程序的bug进行定位。

二、单进程/线程

下面以调试0~10累加为例,介绍gdb调试单进程/线程程序。

源码:

3464a9ab3cb1090e1695857635c6de60.png

输入命令:gdb testgdb3或者gdb --se testgdb3均可调试界面。

a3b6dd05cdfe276f30f4c107d8f752a0.png

输入 list(简写l)可显示代码。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值