最近,我一直在用Qt编写C++程序,但在编写过程中遇到了问题,想用Qt Creator中的调试器调试一下,但调试时(在Qt Creator中已配置好相应的调试器)出现“ ptrace:Operation not permitted ”的错误,如下图所示:

经百度搜索,找到了问题的原因及其解决方案。

  原来,在Ubuntu 11.04("Natty Narwhal")之后的版本中,一种叫做 ptrace scope 的安全机制被引入。这种机制防止用户访问当前正在运行的进程的内存和状态,这就造成Qt Creator的调试器不能正常工作。这种安全机制可以防止恶意软件附加到其他进程中(如SSH或者GPG),读取程序内存,产生安全问题。

  这个错误特别出现在Ubuntu 11.04之后的版本中,为了解决这个问题,有两种方法,这两种方法都需要root权限。

  第一种解决方法可以临时解决这个问题,但在下次重启系统后会失效。方法是将/proc/sys/kernel/yama/ptrace_scope虚拟文件的内容设为0,使用命令:

sudo echo  > /proc/sys/kernel/yama/ptrace_scope

  第二种解决方法可以永久解决这个问题,方法是编辑/etc/sysctl.d/10-ptrace.conf这个文件,设置:

kernel.yama.ptrace_scope = (默认是1)

  重启系统即生效。

  以上问题解决后,又出现了另一个问题:设置了断点停不下来

  原因:一直没有编译debug版本,一直使用的是release版来调试。

  解决方法:配置为debug版本,重新编译一下即可。

  如果调试时只出现下图所示的错误,则是权限不足的问题。

  解决方法:改用 sudo ./qtcreator 的方式启动,为了方便,可以在home下创建一个qtcreator的快捷方式,这样就不用每次都cd到程序所在目录了。

ubuntu12.04下Qt调试器的使用的更多相关文章

  1. Ubuntu12.04下Qt连接MySQL数据库

    本文介绍在Ubuntu12.04 (64 bit) 下使用Qt 4.8.2连接MySQL(Ver 14.14 Distrib 5.5.43)数据库. 1.安装 Qt 和 MySQL 若未安装以上软件, ...

  2. Ubuntu12.04下安装sourcenavigator-NG4.5阅读源代码

    大家知道Windows下有一个很好的查看源代码的软件sourceinsight,使用sourceinsight查看Linux内核代码.嵌入式软件开发中的C语言项目源代码.驱动程序代码很是方便.在Lin ...

  3. Linux (Ubuntu12.04) 下开发工具安装和使用

    Linux (Ubuntu12.04) 下开发工具安装和使用 这里讲述的是关于在ubuntu12.04下面安装和使用各种IDE 开发环境和初步使用的知识.说一下背景:很多的开发基本都是在linux操作 ...

  4. 阿里云ubuntu12.04下安装使用mongodb

    阿里云ubuntu12.04下安装mongodb   apt-get install mongodb 阿里云ubuntu12.04下卸载mongodb,同时删除配置文件     apt-get pur ...

  5. 在ubuntu12.04下编译android4.1.2添加JNI层出现问题

    tiny4412学习者,在ubuntu12.04下编译android4.1.2添加JNI层出现问题: (虚心请教解决方法) trouble writing output: Too many metho ...

  6. [置顶] ubuntu12.04下编译opencv程序

    ubuntu12.04下编译opencv程序 1.在ubuntu下安装好 opencv后(建议使用apt-get install 来安装) 2.使用程序FaceExaple.c来进行测试程序 #inc ...

  7. Ubuntu12.04下安ns-3.29及Ubuntu换源方法

    目录 1.下载ns-3.29 2.安装gcc-4.9.2 3.编译.测试ns-3.29 第一种:更新,文章开头说的 第二种,更新源 主机型号:Ubuntu12.04 仿真环境版本:NS-3.29 安装 ...

  8. ubuntu12.04下helloworld驱动从失败到成功过程

    最近在看linux的设备驱动程序,写一个简单的helloworld程序都花了我好久的时间,具体过程如下: 编写helloworld.c 编写Makefile 注意,makefile中的命令那里是一个t ...

  9. ubuntu12.04下NFS链接开发板并测试交叉编译的第一个应用

    思路:配置网络->安装NFS->配置NFS->挂载NFS服务->Down文件执行.Okay lets go! 配置网络: 在配置网络之前,首先咱得搞定与开发板的交互工作,那么这 ...

随机推荐

  1. js高级-模块化演变

    function demo(){ var a = b = c = 9; // b,c全局变量 a局部变量 } demo(); console.log(b) 命名空间 var Shop = {} //顶 ...

  2. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  3. MyBatis数据库连接的基本使用

    MyBatis部分: 本部分内容只主要体现Mybatis的特点. (1)MyBatis是什么? 开源的持久层框架,MyBatis的底层仍然是JDBC (2)编程步骤 step1 Maven项目 pom ...

  4. xlrd使用

    import xlrd //导入模块filename='路径/文件名' //文件路径.名称python读取excel中单元格的内容返回的有5种类型,即ctype:0. empty(空的),1 stri ...

  5. Fiddler抓包域名过滤(转载)

    转载自 http://www.cnblogs.com/111testing/p/6440480.html Fiddler抓包域名过滤 我们在用Fiddler抓包的时候会抓到很多不需要的数据包,我们怎样 ...

  6. JMeter学习(十三)目录介绍(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter也学了一阵子了,对于基本的操作已了解,再回过头来看看Jmeter的目录,本篇是对于它的目录进行一些简单的介绍 ...

  7. JMeter学习(十二)分布式部署(转载)

    转载自 http://www.cnblogs.com/yangxia-test Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有 ...

  8. web前端开发浏览器兼容性处理大全

    1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...

  9. 《学习OpenCV(中文版)》

    <模式识别中文版(希)西奥多里蒂斯> <学习OpenCV(中文版)> 矩阵计算 英文版 第四版 Matrix Computations OpenCV 3.x with Pyth ...

  10. unity的inputField文本框赋值问题

    GameObject t = GameObject.Find("InputFieldT"); Text tt = t.transform.Find("Text" ...