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到程序所在目錄了。