https://www.hiroom2.com/2018/04/27/ubuntu-1804-dbgsym-en/

目录

1 Add repository of dbgsym

2 Install dbgsym package

3 Download package source code

4 Install GDB

5 Debug package


1 Add repository of dbgsym

dbgsym package is published in ddebs.ubuntu.com. Add ddebs.ubuntu.com to repository list.

$ U=http://ddebs.ubuntu.com
$ D=$(lsb_release -cs)
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/ddebs.list
deb ${U} ${D} main restricted universe multiverse
#deb ${U} ${D}-security main restricted universe multiverse
deb ${U} ${D}-updates main restricted universe multiverse
deb ${U} ${D}-proposed main restricted universe multiverse
EOF

Import GPG key of ddebs.ubuntu.com.

$ wget -O - http://ddebs.ubuntu.com/dbgsym-release-key.asc | \
sudo apt-key add -

Update repository database.

$ sudo apt update -y

2 Install dbgsym package

The package which has a suffix of dbgsym provides debug symbol.

<package>-dbgsym

In case of bash is as below.

$ sudo apt install -y bash-dbgsym
$ dpkg -L bash-dbgsym
/.
/usr
/usr/lib
/usr/lib/debug
/usr/lib/debug/usr
/usr/lib/debug/usr/bin
/usr/lib/debug/usr/bin/clear_console
/usr/lib/debug/bin
/usr/lib/debug/bin/bash

GDB will search /usr/lib/debug automatically even if you do not specify path of debug symbol.

3 Download package source code

Ubuntu 18.04 disables deb-src by default. You need to enable deb-src for downloading package source code.

Enable deb-src.

$ grep '^deb ' /etc/apt/sources.list | \sed 's/^deb /deb-src /g' | \sudo tee /etc/apt/sources.list.d/deb-src.list
$ sudo apt update  -y

Install dpkg-dev package for dpkg-source command.

$ sudo apt install -y dpkg-dev

Download package source code.

$ mkdir <package>
$ cd <package>
$ apt source <package>

In case of bash is as below. bash-4.4.18 is a source tree.

$ mkdir ~/bash
$ cd ~/bash
$ apt source bash
$ ls
bash-4.4.18                         bash_4.4.18-2ubuntu1.dsc
bash_4.4.18-2ubuntu1.debian.tar.xz  bash_4.4.18.orig.tar.xz

4 Install GDB

Install gdb.

$ sudo apt install -y gdb

5 Debug package

Run GDB with command and path of source code.

$ gdb <command> --directory /path/to/source
<snip>
(gdb)

In case of bash is as below.

$ gdb bash --directory ~/bash/bash-4.4.18/
<snip>
(gdb) b main
Breakpoint 1 at 0x2fdb0: file .././shell.c, line 368.
(gdb) r
Starting program: /bin/bash
Breakpoint 1, main (argc=1, argv=0x7fffffffe418, env=0x7fffffffe428) at
.././shell.c:368
368     {
(gdb) l
363     int
364     main (argc, argv, env)
365          int argc;
366          char **argv, **env;
367     #endif /* !NO_MAIN_ENV_ARG */
368     {
369       register int i;
370       int code, old_errexit_flag;
371     #if defined (RESTRICTED_SHELL)
372       int saverst;

GDB command "la src" is useful for tracing source code.

(gdb) la src

Ubuntu 18.04: Debug package with debug symbol相关推荐

  1. ubuntu 18.04 git clone 出错symbol lookup error: libhogweed.so.4: undefined symbol: __gmpn_cnd_add_n

    在ubuntu 18.04 使用命令 git clone 然后出错了 symbol lookup error: libhogweed.so.4: undefined symbol: __gmpn_cn ...

  2. AI视频行为分析系统项目复盘——技术篇1:Ubuntu 18.04部署编译OpenCV+contrib、TensorFlow2.1、CUDA10.1+cuDNN7.6.5、tensorRT6.0.1等

    0 项目背景 接手他人的项目,全过程重头梳理下. 7台服务器,其中6台GPU服务器(GPU:2*2080Ti,CPU:2*Xeon Gold 5118(12核24线程)),一台调度服务器,Ubuntu ...

  3. 如何在Ubuntu 18.04上使用Nginx与MySQL服务器一起部署ASP.NET Core应用程序

    The author selected the Open Source Initiative to receive a donation as part of the Write for DOnati ...

  4. 【Autoware】Ubuntu 18.04 ssdcaffe安装与Autoware 检测节点运行

    Ubuntu 18.04 + 1.14 Autoware USE CPU&GPU 安装caffe 系统依赖项 获取ssd版caffe 编译前工作 Makefile.config Makefil ...

  5. 在Ubuntu 18.04 LTS安装ROS 2 Bouncy版机器人操作系统

    ROS 1和ROS 2同步开发发行,目前最新ROS 1的版本号为M,而ROS 2的版本号为B,ROS 2 Bouncy正式发布. 目前,ROS packages for Ardent状态为mainta ...

  6. 如何在Ubuntu 18.04上安装ERPNext堆栈

    The author selected Software in the Public Interest to receive a donation as part of the Write for D ...

  7. 基于Ubuntu 18.04.3操作系统的TensorFlow 2.1.0、PyTorch 1.4.0、OpenCV 4.2.0、Darknet深度学习环境搭建

    今天是初五,民间有破五的习俗,简单来说就是说该工作啦. 回顾研究生毕业的一年半,期间从事过桌面应用开发.CAN\串口开发.无人机目标检测开发.爬虫.数据工程.大数据系统运维等.研究生期间学的深度学习也 ...

  8. 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )

    文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...

  9. 服务器接收消息写日志,在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法

    本文介绍在Ubuntu 18.04操作系统上配置Rsyslog集中式日志服务器的方法. 前言 登录任何Linux系统对于分析和排除与系统和应用程序相关的任何问题至关重要,借助Graylog等工具(参考 ...

最新文章

  1. 计算机网络ip地址的分类
  2. 【机器学习PAI实战】—— 玩转人工智能之综述
  3. Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
  4. CSS中使用flex弹性布局实现上下左右垂直居中排列并设置子元素之间的间距
  5. Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇
  6. Hadoop简介与分布式安装
  7. ObjectDataSource控件的使用...
  8. 在Windows系统上安装PHP工作环境
  9. mysql_连接查询
  10. 【下载】1200页CV经典《计算机视觉:算法与应用》第二版开放下载
  11. 用华秋DFM处理Allegro PCB文件
  12. 如何修复Win7照片查看器无法显示的图片
  13. MAC-快捷键打开终端
  14. netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码
  15. 初来乍到,还请多多关照
  16. 不去摄影棚,不用PS三步快速证件照换底色最简单方式
  17. [小程序] 微信开发者工具下载与安装 WXMLfor if 模板页面引用 tabBar
  18. Javaweb开发一般步骤
  19. 如何查看yandex文字搜索广告的搜索词?
  20. 网络封包过滤之分层服务提供者(LSP)

热门文章

  1. spring知识点概述
  2. MySQL学习笔记三:  1. 多表查询     2. 事务     3. DCL
  3. 清华大学计算机学科馆员,清华大学图书馆 学科馆员工作
  4. Java NIO 非阻塞网络编程快速入门
  5. Mongodb05 - 数据操作(删除、游标)
  6. Visual studio C++ MFC之列表控件CListCtrl Control
  7. Flash3D的X,Y,Z坐标系调试小工具
  8. 转载 Android入门学习_代码常用布局
  9. php 导航栏链接网页,怎样用php来给网页做导航栏_php实例
  10. java restcontroller_Spring框架:@RestController与@Controller