ddd是一个优秀的调试器,安装ddd破费周折

必须安装x开发环境

1.下载

http://ftp.gnu.org/gnu/ddd/,下载最新的ddd-3.3.12.tar.gz

# wget http://ftp.gnu.org/gnu/ddd/ddd-3.3.12.tar.gz

# tar zxvf ddd-3.3.12.tar.gz

# cd ddd-3.3.12/

2.配置

# ./configure --prefix=/usr/local/ddd

安装缺失文件

1).如果configure的时候报错:
You must set the environment variable CXX to a working C++ compiler
这说明缺少C++编译器

#yum install gcc-c++

2).如果configure的时候报错:

checking for tgetent in -lncurses... no

checking for tgetent in -lcurses... no

checking for tgetent in -ltermcap... no

checking for tgetent in -ltinfo... no

checking for termcap functions library... configure: error: No curses/termcap library found

这说明缺少ncurses安装包

#yum list|grep ncurses
#yum -y install ncurses-devel
#yum install ncurses-devel

3).如果configure的时候报错:

configure: error: The X11 library '-lX11' could not be found.
Please use the configure options '--x-includes=DIR'
and '--x-libraries=DIR' to specify the X location.
See the files 'config.log' and 'ddd/config.log'
for further diagnostics.

这说明缺少openmotif

# yum install openmotif

# yum install openmotif-devel

配置成功,如下图所示:

3.编译

# make

如果make报错如下:
g++ -DHAVE_CONFIG_H -I. -I./.. -O2 -g -Wall -W -Wwrite-strings -trigraphs -MT strclass.o -MD -MP -MF .deps/strclass.Tpo -c -o strclass.o strclass.C
strclass.C: In function ‘std::istream& operator>>(std::istream&, string&)’:
strclass.C:1546: 错误:‘EOF’在此作用域中尚未声明
strclass.C:1559: 错误:‘EOF’在此作用域中尚未声明
strclass.C: In function ‘int readline(std::istream&, string&, char, int)’:
strclass.C:1589: 错误:‘EOF’在此作用域中尚未声明
strclass.C:1602: 错误:‘EOF’在此作用域中尚未声明
make[2]: *** [strclass.o] 错误 1
make[2]: Leaving directory `/usr/ddd-3.3.12/ddd'
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/usr/ddd-3.3.12/ddd'
make: *** [all-recursive] 错误 1

错误内容是说EOF没有声明,文件是strclass.C

解决方法:

#find -name strclass.C

找到路径后编辑在改文件头部加入 #define EOF -1

终于可以make成功了!

4.安装

# make install

5.启动

进入ddd的安装目录/usr/local/ddd,还要再进入bin子目录

#cd /usr/local/ddd/bin

#ddd

成功启动界面

6.调试

静态调试

在要调试的程序所在目录

#/usr/local/ddd/bin/ddd   程序

动态调试

ddd更强大的是是可以绑定到运行中的程序例如Nginx进程上

# ps aux|grep nginx

#ddd -p nginx_pid

设置断点:在需要设置断点代码行,按鼠标右键弹出菜单选SetBreakoint。

查看所有断点,可以点source->Breakoints弹出窗口。

查看变量:右击鼠标选中变量,点Display即可以图形化查看变量。

如果变量是结构体包含的结构体,那么还可以在Display出来的图形化结构体中,选中其中是结构体的变量继续Display。

小技巧:可以使用showall和hideall显示和隐藏子结构,例如nginx的内存池对象*p的d子结构可以在display时展开全部

Linux环境ddd安装与使用相关推荐

  1. linux ddd yum,Linux环境ddd安装与使用

    ddd是一个优秀的调试器,安装ddd破费周折 必须安装x开发环境 1.下载 # wget http://ftp.gnu.org/gnu/ddd/ddd-3.3.12.tar.gz # tar zxvf ...

  2. Linux环境Nginx安装多版本PHP

    关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922 linux版本:64位Cent ...

  3. Linux环境HBase安装配置及使用

    Linux环境HBase安装配置及使用 1. 认识HBase (1) HBase介绍 HBase = Hadoop database,Hadoop数据库 开源数据库 官网:hbase.apache.o ...

  4. Linux环境下安装nginx

    大家好,本篇文章主要讲的是Linux环境下安装nginx教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 1.安装所需环境 //安装gcc yum install gcc-c ...

  5. 尚学python课程---11、linux环境下安装python注意

    尚学python课程---11.linux环境下安装python注意 一.总结 一句话总结: 准备安装依赖包:zlib.openssl:yum install zlib* openssl*:pytho ...

  6. Linux环境下安装Tigase XMPP Server

    Tigase是一种XMPP服务器,可以作为采用XMPP协议的各种IM(Instant Messeging)工具(如Pandion.Spark等)的服务器. 在Linux环境下安装Tigase的步骤如下 ...

  7. Linux环境下安装RocketMQ(MetaQ)

    一:RocketMQ简介 RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: 1.能够保证严格的消息顺序 2.提供丰富的消息拉取模式 3.高效的订阅者水平扩展能力 4.实时的消息订阅机 ...

  8. linux环境下安装多个任意版本的python环境

    linux环境下安装多个任意版本的python环境 安装方法可以归结为 [下载 + 编译 + 配置环境变量] 下载Python Windows下载发送到linux上 step1. 下载linux版本的 ...

  9. Linux环境下安装Mysql5.7

    本文记录下我近期在Linux环境下安装Mysql5.7的实践经历. 服务器版本 Mysql版本 Centos 7.6 5.7.32 1. 下载Mysql 下载地址:https://downloads. ...

最新文章

  1. vscode安装python插件成功 调试时通知一直在载入_vscode写python时的代码错误提醒和自动格式化...
  2. 学习Python编程,推荐最好的五本参考书,必读~~~
  3. Tomcat 发布项目 conf/Catalina/localhost 配置 及数据源配置
  4. 妲己机器人怎么升级固件_OnRobot新增爱普生川崎机器人套件、HEX固件升级
  5. 基于selenium的爬虫
  6. 基于51单片机中文汉字LCD12864滚动显示屏仿真(源码+仿真+全套资料)
  7. R 语言详细安装教程(保姆级)及 RStudio简易安装教程
  8. Parallels Toolbox for mac(万能工具箱)中文版
  9. FFmpeg学习(四)-- libavformat 代码组成
  10. 299美元企业级账号申请过程
  11. 一张纸厚度是多少毫米_一张A4纸的厚度是多少mm?
  12. 计算机软件选修课选什么好,互联网行业,软件工程专业学什么?
  13. 牛逼啦!20行Python代码让程序自动玩“合成大西瓜”!
  14. uni-app 商城 的sku算法(vue)
  15. C语言实现计算数字能否被3个数整除
  16. Html定义网页背景色
  17. 智能指针(一)—— 智能指针的底层原理(RAII特性)
  18. linux下通过wifi连接网络
  19. vue用户没有头像用姓名首字母做头像
  20. pycharm汉化之后切换回英文

热门文章

  1. Android客户端多线程实例分析
  2. 在Win10下如何实现VS下工程代码的开机自启功能
  3. 机器学习(实战)泰坦尼克号(游客存活率预估)
  4. key mysql_mysql中key 、primary key 、unique key 与index区别
  5. 基于相交线的立体平面SLAM
  6. 设置flashfxp选中ftp密码的时候显示出来看
  7. 修改vscode的语言
  8. 在Ubuntu 14.04 64bit上搭建单机本地节点Spark 1.3.0环境
  9. [Linux] 010 权限管理命令 chmod
  10. asp.net Core多环境读取Json