歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu下調試Qt報錯ptrace operation not permitted

Ubuntu下調試Qt報錯ptrace operation not permitted

日期:2017/2/28 14:53:46   编辑:Linux教程

QtCreator是一個非常好的IDE,可以用來開發Qt應用程序和一般的C++應用程序。但是在Ubuntu上調試應用程序,有時候會出現錯誤(如內存訪問錯誤),QtCreator會彈出錯誤對話框,顯示QtCreator: ptrace operation not permitted,如下圖所示。

解決方法

這個錯誤特別出現在Ubuntu 11.04之後的版本中,為了解決這個問題,有兩種方法,這兩種方法都需要root權限。

第一種解決方法可以臨時解決這個問題,但是在下次重新啟動系統是會失效。方法是將/proc/sys/kernel/yama/ptrace_scope虛擬文件的內容設為0,使用命令:

sudo echo 0 > /proc/sys/kernel/yama/ptrace_scope

第二種解決方法可以永久解決這個問題,方法是編輯/etc/sysctl.d/10-ptrace.conf這個文件,設置

kernel.yama.ptrace_scope = 0(默認是1)

這樣下次啟動時也會生效。

原因

在Ubuntu 11.04("Natty Narwhal")之後的版本中,一種叫做ptrace scope的安全機制被引入。這種機制防止用戶訪問當前正在運行的進程的內存和狀態,這就造成QtCreator的調試器不能正常工作。這種安全機制可以防止惡意軟件附加到其他進程中(如SSH或者GPG),讀取程序內存,產生安全問題。

------------------------------------------分割線------------------------------------------

再一例:

直接點擊圖標運行了qt creator,在調試的時候報錯,如圖

很明顯,是權限不足的問題。解決方法就是改用 sudo ./qtcreator

的方式啟動,為了方便,可以再home下創建一個qtcreator的

快捷方式,這樣就不用每次都cd到程序所在目錄了。

Copyright © Linux教程網 All Rights Reserved