QT在ubuntu下无法调试控制台C/C++程序

系统ubuntu12.04

qt4.8.0  64位

使用qt创建一个纯C++项目

QT在ubuntu下无法调试控制台C/C++程序_第1张图片


产设一个项目,代码如下

#include 

using namespace std;

int main()
{
    cout << "Hello!" << endl;
    return 0;
}

但是启动之后,终端什么都没有输出,

为了解决这个问题,选择菜单 工具->选项->环境->常规, 将"x-terminal-emulator -e"改为"/usr/bin/xterm -e"

QT在ubuntu下无法调试控制台C/C++程序_第2张图片

现在可以运行代码,但是调试的时候,会报出

QT在ubuntu下无法调试控制台C/C++程序_第3张图片

编辑/etc/sysctl.d/10-ptrace.conf这个文件,设置kernel.yama.ptrace_scope = 0 (默认是1)

因为是系统文件,使用 sudo vim /etc/sysctl.d/10-ptrace.conf命令打开这个文件,修改好了后,:wq保存


原因

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


你可能感兴趣的:(QT,ubuntu)