源码级调试Ubuntu的系统程序

本文介绍了如何在Ubuntu 20.04上进行系统程序的源码级调试,包括添加符号仓库、安装符号文件、使用gdb设置断点,并详细阐述了安装源代码进行调试的步骤,便于读者体验并理解Linux调试过程。
摘要由CSDN通过智能技术生成

为了减小发布版本的大小,Ubuntu的系统模块都是剥离了符号的,比如使用readelf --debug-dump /bin/ls观察,它没有任何DWARF格式的符号。

gebox@gebox-VirtualBox:~$ readelf --debug-dump /bin/ls

Contents of the .gnu_debuglink section:

  Separate debug info file: 15ad836be3339dec0e2e6a3c637e08e48aacbd.debug

  CRC value: 0x371907fb

(上面的build-id是用来定位与剥离出去的符号文件匹配使用的。)

因此,要想调试ls这样的系统程序,常用的方法就是从Ubuntu的符号服务器来安装符号,以下是针对Ubuntu 20.04的典型操作步骤。

1. 增加符号仓库的位置信息,建议使用如下命令自动产生一个新的配置文件

echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse

deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse

deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | 

sudo tee -a /etc/apt/sources.list.d/ddebs.list

2. 执行如

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值