Ubuntu 18.04: Debug package with debug symbol
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相关推荐
- 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 ...
- 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 ...
- 如何在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 ...
- 【Autoware】Ubuntu 18.04 ssdcaffe安装与Autoware 检测节点运行
Ubuntu 18.04 + 1.14 Autoware USE CPU&GPU 安装caffe 系统依赖项 获取ssd版caffe 编译前工作 Makefile.config Makefil ...
- 在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 ...
- 如何在Ubuntu 18.04上安装ERPNext堆栈
The author selected Software in the Public Interest to receive a donation as part of the Write for D ...
- 基于Ubuntu 18.04.3操作系统的TensorFlow 2.1.0、PyTorch 1.4.0、OpenCV 4.2.0、Darknet深度学习环境搭建
今天是初五,民间有破五的习俗,简单来说就是说该工作啦. 回顾研究生毕业的一年半,期间从事过桌面应用开发.CAN\串口开发.无人机目标检测开发.爬虫.数据工程.大数据系统运维等.研究生期间学的深度学习也 ...
- 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )
文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...
- 服务器接收消息写日志,在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法
本文介绍在Ubuntu 18.04操作系统上配置Rsyslog集中式日志服务器的方法. 前言 登录任何Linux系统对于分析和排除与系统和应用程序相关的任何问题至关重要,借助Graylog等工具(参考 ...
最新文章
- 计算机网络ip地址的分类
- 【机器学习PAI实战】—— 玩转人工智能之综述
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- CSS中使用flex弹性布局实现上下左右垂直居中排列并设置子元素之间的间距
- Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇
- Hadoop简介与分布式安装
- ObjectDataSource控件的使用...
- 在Windows系统上安装PHP工作环境
- mysql_连接查询
- 【下载】1200页CV经典《计算机视觉:算法与应用》第二版开放下载
- 用华秋DFM处理Allegro PCB文件
- 如何修复Win7照片查看器无法显示的图片
- MAC-快捷键打开终端
- netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码
- 初来乍到,还请多多关照
- 不去摄影棚,不用PS三步快速证件照换底色最简单方式
- [小程序] 微信开发者工具下载与安装 WXMLfor if 模板页面引用 tabBar
- Javaweb开发一般步骤
- 如何查看yandex文字搜索广告的搜索词?
- 网络封包过滤之分层服务提供者(LSP)
热门文章
- spring知识点概述
- MySQL学习笔记三: 1. 多表查询 2. 事务 3. DCL
- 清华大学计算机学科馆员,清华大学图书馆 学科馆员工作
- Java NIO 非阻塞网络编程快速入门
- Mongodb05 - 数据操作(删除、游标)
- Visual studio C++ MFC之列表控件CListCtrl Control
- Flash3D的X,Y,Z坐标系调试小工具
- 转载 Android入门学习_代码常用布局
- php 导航栏链接网页,怎样用php来给网页做导航栏_php实例
- java restcontroller_Spring框架:@RestController与@Controller