[英]Debugging a C++ program in NetBeans 8.0 which needs the sudo to run
我知道這個問題在各種網站上被問過很多次,但我找不到任何建議來解決我的問題。 我正在 NetBeans 8.0 中使用 GCC 4.8.1,需要(視覺上)調試訪問原始設備的程序,因此我需要通過 sudo 運行它。
我的項目屬性設置是:
- 運行 -> 運行命令 = "sudo ${OUTPUT_PATH}"
- 運行 -> 控制台類型 =“外部終端”
- 運行 -> 外部終端類型 =“默認”
所有其他設置都是默認設置,包括Debug -> Debug Command
,它是空的。
因此,當我在 NetBeans 中運行該程序時,它運行良好 - sudo 要求輸入密碼,然后程序繼續運行。 但是,我無法在 NetBeans 中調試它 - 調試器輸出下面的文本並停止。
有任何想法嗎? 請不要建議以 root 身份運行 NetBeans - 這對我來說太麻煩了。
(我在Xubuntu 3.11
,它在 Mac 上的 VMWare Fusion VM 中作為guest OS
運行)
2015/09/16 更新:
根據多個建議(來自網絡),我嘗試用我的腳本替換Tools
-> Options
-> C/C++
彈出窗口中的Debug Command
,內容如下:
#!/bin/bash
PROG=$(which gdb)
sudo $PROG "$@"
該腳本在命令行中運行良好。 但是,當我嘗試從 NetBeans 調試我的程序時,出現以下彈出窗口:
所以,第一個問題消失了,第二個問題出現了。 在這種情況下,我看到了許多清除斷點的建議 - 它沒有幫助我。
任何想法下一步要嘗試什么?
(gdb 版本為 GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04)
有點晚了,但是我在尋找完全相同問題的解決方案時遇到了這個問題。
使用以下內容創建腳本文件:
#!/bin/bash
sudo /usr/bin/gdb $*
將腳本文件的權限更改為您的用戶可執行。
在 NetBeans 中,轉到工具 -> 選項 -> C/C++ -> 調試器命令 -> script_file_name
我想到的最好的方法是使用sudo
啟動gdb
並強制系統不要求輸入密碼。 我相信你的問題已經有了答案(雖然對於 Eclipse,但對於 Netbeans 來說本質上是一樣的) https://stackoverflow.com/a/8143245/3093378
希望這可以幫助。
您可以嘗試其中之一,
希望這能解決你的問題,
祝你好運
您是否嘗試過將“sudo gdb”作為調試命令(或以根用戶身份運行 Netbeans,這是最后的手段)?
這是我如何使用它:
運行 -> 運行命令 = sudo "${OUTPUT_PATH}"
您需要在引號之前移動sudo
。
其他設置不應該引起任何問題,但這是我的設置方式:
運行 -> 控制台類型 =“標准輸出”
運行 -> 外部終端類型 =“默認”
如果有人仍在尋找解決方案。
它沒有以作者預期的方式解決問題,但確實將其解決為一個可行的解決方案。
允許 sshd 作為 root 用戶 sshable
使用 root 用戶名在 Netbeans 中添加主機
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.