plsql一直正在编译_GDB动态打印:让你随时随地printf,不需修改代码,不需重新编译...

本系列专题,旨在介绍一些非常实用,却不为大多数人所知的调试技巧。灵活运用这些调试技巧,能够轻松解决一些我们经常遇到并为之困惑的问题,大大提高程序调试的效率。

感兴趣的朋友,欢迎右上角关注!

引言 - 程序调试的痛

关于程序调试,有人喜欢各种调试工具,有人喜欢用简单直接的log打印。两种方法各有各的优势和不足,大多时候是可以互补的。

在Linux环境下,GDB是各种调试工具中的佼佼者,而printf则是各种日志打印方法中的典型代表。

6d9ec7f6991e06daff071c0ef9bb904f.png

调试问题时候,你遇到过下面的情况吗?

代码添加打印信息进行调试,突然发现添加打印的位置不对,或者别的地方也需要添加打印信息。

于是,重新修改源码,重新添加打印,重新编译,重新部署,重新运行,重新调试,重新分析。

当我们费了九牛二虎之力把这些都弄好之后,很不幸地又发现了新的问题,然后不得不反复进行这些过程。

而且,当问题定位出来之后,我们之前花费很大力气添加的调试信息,还必须从程序中删除掉。

52ac227e4615f4401772ec5b327805fa.png

对于简单的程序,这些尚可接受。但是,在大型项目中,单是编译构建过程可能就要几十分钟,甚至数个小时,而部署过程则更为复杂。

你能想象得出,在这样的项目中一直重复这些过程,是一件多么痛苦的事情吗?

那么,有没有一种方法,既不需要修改源码,又能随时在程序中任何地方任意添加打印信息呢?

当然有!GDB的动态打印功能正式为此而生的!

37d4f9742e2fdec0e86645507de680fa.png

GDB Dynamic Printf

GDB提供了Dynamic Printf功能,下文我们称之为动态打印。利用这个功能,我们可以在不修改程序源码的情况下,随时在程序的任何地方添加格式化打印

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值