我最近从使用 Qt Creator 的 Windows 更改为 Ubuntu。
问题在于,Ubuntu 中的 Qt Creator 无法正确调试,因为将 ptrace 附加到程序时出现了一些问题,我发现这是由于安全升级造成的。调试的唯一方法是弄乱系统设置并更改 ptrace 变量配置,但我对此不太满意,因为它会危及安全。
所以我的问题是,Linux 中是否有类似 Qt Creator 或 Visual Studio 调试器的东西?我的意思是能够跟踪变量值和指针等。
如果不是,Linux 的标准调试器是什么?我不介意使用控制台工具,只要它们提供相同的功能
答案1
你看过 gdb 吗?它是一个命令行界面工具。
另一个选择是使用 Eclipse C/C++,它是一个成熟的 C 和 C++ IDE,为 gdb(CDT GNU Toolchain Debug)提供前端。
我没有使用过后者,因为我对 gdb 很熟悉。
答案2
如果没有 ptrace,我想不出有哪个调试器能够工作。 这另一个问题的答案描述了如何暂时禁用 ptrace 限制。为了调试而暂时禁用它并不是一个巨大的安全问题。但是,一般来说,用户不需要该功能,也没有理由无缘无故地允许它。
说启用 ptrace 总是有问题,就像说插入以太网电缆有问题一样。虽然可以理解为正确,但没有调试权限就无法进行调试。
答案3
我推荐 gdb(我认为它包含在 GCC/g++ 编译器套件中 - 您也可以在 Ubuntu 中使用 Qt Creator)。我使用过带和不带 ptrace 的版本,说实话,我并没有发现它们的区别。但这可能只是我的开发方式。同样值得一提的是英特尔编译器:非商业用途免费,并带有与 Eclipse 集成的调试器。不过也需要禁用 ptrace。