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

必须安装x开发环境

1.下载

# 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 yum,Linux环境ddd安装与使用相关推荐

  1. linux终端怎样ise,Linux下ISE开发环境的安装zz

    Linux下ISE开发环境的安装zz (2011-03-17 18:55:33) 标签: 杂谈 转自:http://hi.baidu.com/remygo/blog/item/6823f78b83ce ...

  2. 在linux+nginx+mysql+php环境下安装 phpmyadmin

    环境 1, CentOS 7 2, nginx1.12.2 (Linux 利用yum源安装nginx) 3, php7.0 (Linux 利用yum源安装php7.0+nginx) 4, mysql5 ...

  3. linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解

    Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...

  4. linux下qt环境的运行,在Linux下使用QT环境来安装和运行WebKit

    Installing and Running WebKit in Linux Using Qt I'm coming to appreciate more and more all of the ha ...

  5. linux(ubuntu)环境下安装及配置JDK

    安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...

  6. linux下使用python_Python随笔(一)、Linux系统下python环境的安装

    安装python3.5可能使用的依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlit ...

  7. linux mysql卸载_Linux环境下安装Mysql8.0数据库

    今年的双11既没有光棍节的气氛也没有购物的欲望,不过还是大出血了,买了一台2核4G的云服务器3年699元.就算用来督促自己学习吧!话不多说,今天先来体验Linux安装Mysql数据库? 步骤一:Mys ...

  8. gnu java_GNU/Linux下Java开发环境的安装和配置

    首先下载JDK,在这里下载最新版本的JDK,选择平台为linux,就会得到一个二进制文件,我得到的是jdk-6u23-linux-i586.bin,复制到需要安装的地方运行就会自动解压缩并安装. 比如 ...

  9. java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园

    首先下载JDK,在http://www.oracle.com/technetwork/java/javase/downloads/index.html下载最新版本的JDK,选择平台为linux,就会得 ...

最新文章

  1. php json转数组后并在前端展示,0516-如何从服务器端获取JSON格式字符串并解决到前端页面中显示...
  2. 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询
  3. Xmanager企业版激活成功全过程
  4. C和汇编----字符串
  5. linux中打开gif图片命令,在Linux终端中安装使用Gifski创建GIF动图
  6. 如下哪个是Java中的合法自定义标识符_吉大13春《面向对象程序设计》在线作业答案...
  7. 文本聚类python fcm_模糊C均值聚类-FCM算法
  8. IOI国家集训队历年论文
  9. imac苹果一体机忘记开机密码,直接重置开机密码
  10. 【C++】-- STL容器适配器之stack
  11. python如何登录一个需要第三方验证的网站_python+selenium 之如何跳过登录验证
  12. 【C++/CPP】OpenCV丨2. 常用操作丨1. 创建Mat丨
  13. 关于文件上传失败的问题
  14. 极客爱情 2.2 | 程序员是这样撩妹的
  15. Android - 九宫格
  16. python3字典详解_Python3字典操作详解 Python3字典操作大全
  17. 读《谨言慎行的力量 - 向南怀瑾学律己》
  18. 【踩坑专栏】Field xxFeignClient in xxx required a bean of type ‘xxx.XXFeignClient‘ that could not be found
  19. WebRTC系列 -- iOS ADM音频数据流处理流程及源码阅读记录
  20. 台式计算机的CPU上安装有小风扇,台式机风扇声音大怎么办 台式机cpu风扇怎么拆【步骤】...

热门文章

  1. 基于JAVA+SpringBoot+Mybatis+MYSQL的高校运动会管理系统
  2. c++:怎么将ctime时间转化为一个具体的秒数值_Linux下如何删除长时间不使用的旧文件?...
  3. 实验吧web-中-忘记密码了
  4. JAVA爬虫实践(实践二:博客园)
  5. React Native 从入门到原理
  6. @property括号内属性讲解
  7. lazarus的动态方法和虚拟方法
  8. 在 Windows 7 上安装消息队列
  9. Java基础知识之变量与常量、数据类型、类型转换
  10. Vue的router导航重复-报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to curren