Chạy nó như root là một ý tưởng khủng khiếp. Thay vào đó, hãy sử dụng nguồn và làm cho qtcreator sử dụng sudo để khởi chạy gdb như thế này. Yêu cầu bạn chạy qtcreator từ tty và auth sudo trước khi bạn khởi chạy qtcreator hoặc định cấu hình người dùng của bạn cho sudo không mật khẩu (không được khuyến nghị). Tôi sẽ mã hóa một giải pháp hoàn chỉnh hơn sau này.
Tôi mất tới 1-2 giờ mã / gỡ lỗi mà không có kiến thức trước về QT. Hầu hết thời gian đó được dành để chờ quá trình biên dịch hoàn tất
https://gist.github.com/ppetraki/a0080da047047ea184c6
--- qtcreator-3.0.1.orig/src/plugins/debugger/gdb/gdbprocess.cpp
+++ qtcreator-3.0.1/src/plugins/debugger/gdb/gdbprocess.cpp
@@ -59,7 +59,11 @@ QByteArray GdbProcess::readAllStandardEr
void GdbProcess::start(const QString &cmd, const QStringList &args)
{
- m_gdbProc.setCommand(cmd, Utils::QtcProcess::joinArgs(args));
+ QStringList sudoArgs;
+ sudoArgs << cmd << args;
+ QString sudoCmd = QString::fromUtf8("/usr/bin/sudo");
+
+ m_gdbProc.setCommand(sudoCmd, Utils::QtcProcess::joinArgs(sudoArgs));
m_gdbProc.start();
}