簡體   English   中英

在 NetBeans 8.0 中調試需要 sudo 運行的 C++ 程序

[英]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 調試我的程序時,出現以下彈出窗口:

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

希望這可以幫助。

您可以嘗試其中之一,

  1. 以超級用戶身份運行 Netbeans。 為此,請以 sudo 身份通過終端啟動 Netbeans。
  2. 以 root 用戶身份登錄。 在此之前,您需要啟用 root 帳戶進行登錄( https://askubuntu.com/questions/44418/how-to-enable-root-login )。 從技術上講,您在那里執行的任何操作都不需要身份驗證,因為您已經是 su!

希望這能解決你的問題,

祝你好運

您是否嘗試過將“sudo gdb”作為調試命令(或以根用戶身份運行 Netbeans,這是最后的手段)?

這是我如何使用它:

運行 -> 運行命令 = sudo "${OUTPUT_PATH}"

您需要在引號之前移動sudo

其他設置不應該引起任何問題,但這是我的設置方式:

運行 -> 控制台類型 =“標准輸出”

運行 -> 外部終端類型 =“默認”

  1. 從 NetBeans 或命令行運行您的程序。
  2. 然后在 NetBeans 中轉到 Debug -> Attach Debugger,指定相關項目,並附加到您的進程。

如果有人仍在尋找解決方案。

它沒有以作者預期的方式解決問題,但確實將其解決為一個可行的解決方案。

  1. 允許 sshd 作為 root 用戶 sshable

    • vim /etc/ssh/sshd_config
    • PermitRootLogin 是
    • systemctl 重啟 sshd
  2. 使用 root 用戶名在 Netbeans 中添加主機

  3. 默認選擇新添加的主機,並在項目屬性中更改主機。
  4. 清理和構建,現在應該可以調試了,沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM