首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Qt 調試報錯「ptrace: 不允許的操作」一鍵解決方案

     編輯:關於C語言

問題現象

Ubuntu/Linux 下 Qt Creator 調試 C++ 程序時,控制台彈出:
ptrace: Operation not permitted
導致斷點無法命中、變量無法監視、調試器掛載失敗。

根因

內核參數 kernel.yama.ptrace_scope 預設為 1(僅允許父進程 ptrace),Qt Creator 作為非父進程調試器被攔截。

永久修復(三步)

sudo gedit /etc/sysctl.d/10-ptrace.conf
# 修改或添加:
kernel.yama.ptrace_scope = 0
# 保存退出,重啟生效
reboot

參數含義對照

值策略
0經典模式:任意進程可 ptrace(需同 UID/CAP_SYS_PTRACE)
1受限模式:僅父進程(默認)
2僅管理員(CAP_SYS_PTRACE)
3完全禁用

臨時驗證(無需重啟)

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
# 立即生效,重啟後失效,適合快速驗證

安全性提示

設為 0 降低了進程隔離防護,僅建議開發機使用。生產/共享環境請保持 1 或配合 prctl(PR_SET_PTRACER, ...) 精確授權。

修改生效後,Qt Creator 調試即可正常斷點、單步、變量檢查。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved