热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu系统中利用GDB深入调试printf函数源代码

本文详细介绍了在Ubuntu操作系统中使用GDB调试工具深入分析和调试标准库函数`printf`的源代码过程。通过具体步骤和实例,展示了如何设置断点、查看变量值及跟踪函数调用栈,帮助开发者更好地理解`printf`函数的工作原理及其内部实现细节。

Ubuntu中默认情况下库函数是不带调试信息的,所以用gdb无法进入到printf()函数里。

解决办法是:

1.安装带有调试信息的libc: sudo apt-get install libc6-dbg

2.下载libc源码

a.选定一个放置源码的目录并进入,如 /home/kent/dev-os/libc6-source

b.执行sudo apt-get source libc6, 会把源码下载到当前目录中。 最后源码目录大概是:/home/kent/dev-os/libc6-source/eglibc-2.15

3.运行gdb时指定libc源码目录:gdb `find /home/kent/dev-os/libc6-source/eglibc-2.15 -type d -printf '-d %p '`  my_program

4.最后进入printf()函数即可. 我这里看到的第一行代码是

va_list arg;

Ubuntu 专题页面 =2


推荐阅读
author-avatar
手机用户2502938557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有