在linux上选择C ++调试器

我最近从使用Qt Creator的Windows更改为Ubuntu。

问题是Ubuntu中的Qt Creator无法正常调试,因为我发现安全升级导致程序附加ptrace的问题。 调试的唯一方法是弄乱系统设置并更改ptrace变量配置,但我对此不满意,因为它会危及安全性。

所以我的问题是,Linux中的Qt Creator或Visual Studio调试器有什么关系吗? 我的意思是能够跟踪变量值和指针等。

如果不是什么是Linux的标准调试器? 我不介意使用控制台工具,只要它们提供相同的function

你看过gdb,那是一个命令行界面工具。 另一种选择是使用eclipse c / c ++,这是一个完整的c / c ++ IDE并为gdb(CDT GNU工具链调试)提供前端。 我没有使用后者,因为我对gdb非常熟悉。

没有ptrace,我想不出一个可以工作的调试器。 这个问题的答案描述了如何暂时禁用ptrace限制。 暂时禁用它进行调试不是一个巨大的安全问题。 但是,通常用户不需要该function,并且没有理由不合理地允许它。

说完全启用ptrace是一个问题很像是说插入以太网电缆是一个问题。 虽然可以将其解释为正确,但无法在没有调试权限的情况下进行调试。

我可以推荐gdb(我认为它包含GCC / g ++编译器套件 – 你也可以在Ubuntu中使用Qt Creator)。 老实说,无论是否使用ptrace,我都没有使用过它。 但那可能就是我正在发展的方式。 另外值得一提的是英特尔编译器:免费用于非商业用途,并且它具有与Eclipse集成的调试器。 但是,它还需要禁用ptrace。