2010-05-26 159 views
17

問題之前已經被問到,我看到ddd新聞組的bug報告,但沒有一個建議的解決方案適用於我。ddd在啓動時掛起

它出現了,但是當你試圖做任何像打開文件一樣的東西時,它會掛起消息「等到GDB準備好了。」

其他人報告的一個關鍵事實是,它對一些用戶而不是其他人可以正常工作。我比較了環境並找不到任何顯着差異。任何建議將不勝感激。

+0

即使它不起作用,發佈您嘗試過的內容也不失爲一個好主意,或者甚至可能鏈接到相關的錯誤報告 – 2010-05-26 14:49:34

+0

。 我試過:刪除.gdbinit。通過.gdbinit更改提示爲「(gdb)」(後面的空格應該是重要的)。我刪除了我的initrc。沒有工作。這裏是錯誤報告和建議修復的鏈接(對於我來說,這些修復無效): http://bugs.gentoo.org/show_bug.cgi?id=93543#c10 http://osdir.com/ml/debugging .ddd.bugs/2003-02/msg00005.html – 2010-05-27 14:09:05

回答

23

刪除〜/ .ddd接縫來解決問題。

+0

清潔和簡單。這必須傳播到世界上,我看到這個之前幾乎放棄** ddd ** – albfan 2012-10-19 02:06:53

+0

也爲我解決了這個問題。一旦。然後問題又出現了。然後再解決它。等等。簡而言之,我每次撥打ddd都必須刪除〜/ .ddd。 – 2017-07-19 16:38:26

2

我認爲刪除.ddd裏的init文件也會解決這個問題。無需刪除整個.ddd文件夾。我試了一下,它的工作!另外,如果您廣泛修改ddd默認選項(如按鈕和圖形顯示),則可以將init文件移到此文件夾的外部,然後將一些選項複製回默認由ddd創建的init文件。

注意:在刪除初始化文件後重新啓動ddd時,它將創建默認的init文件。

0

解密的簡單刪除init文件的建議也適用於我。

而對於那些不知道,~/.ddd是在你的home目錄.ddd文件夾。

1

如果問題仍然存在,以下解決方法可能會有所幫助:

  • 開放國內長途,你通常會(如ddd --debugger bashdb script.sh
  • 在DDD下方的面板類型exit

這似乎殺死了一個bashdb實例,然後另一個bashdb實例似乎運行。這個bashdb的第二個實例似乎工作正常,bash腳本源終於出現在頂部窗格中,並允許您逐步調試。

16

也遇到了這個問題。上面簡單的解決方案是刪除〜/ .ddd /目錄中的init文件。

但是這意味着您的所有定製將會消失。所以我開始尋找真正的原因。我發現問題只發生在我使用「GDB設置」對話框後。一旦你打開這個對話框,上面提到的init文件將會增長,因爲很多gdb設置將被存儲在那裏。

一步一步縮小這些額外的行後,我發現了「違規行」。 該問題是由擴展提示設置引起的。打開後,GDB設置對話框此線將改爲像

集擴展,提示沒有設置\ n \

這種「未設置」是什麼GDB將在「秀擴展提示符」的報告。 Unfortunatley「設置擴展提示 是gdb中的一種bug,所以如果我在沒有ddd的情況下從shell運行的gdb中輸入」set extended-prompt not set「,gdb也會鎖定。

它看起來像設置擴展提示的唯一安全方式是當它包含字符串「(gdb)」時。所以,我修改了init文件出錯行,現在,它讀起來就像這樣:

集擴展提示符(GDB)\ n \

通過此設置我沒有遇到這個問題的任何更長的時間。希望對你有幫助。

+2

這也解決了我的問題,而不必摔打我的設置。 – Anthony 2014-09-16 00:17:05

+1

我也發現這個解決方案,但留下空值字段。設置值在啓動時仍然掛起。 – 2016-05-11 17:49:26

5

做一個Ctrl + D,然後選擇「重新啓動DDD」似乎爲我工作。

+3

它也適用於我。大! – 2016-05-11 22:04:51

1

即使沒有觸摸任何設置,打開GDB Settings...窗口也會出現問題。

由於拆卸整個~/.ddd/配置目錄每次時間不長的路要走,如果你自定義了DDD的環境,我已經找到了解決方案,以解決~/.ddd/init文件,可以幫助你也無需拆卸整個配置。

關閉DDD和你的文本編輯器文件

~/.ddd/init 

搜索線開

set extended-prompt not set\n\ 

刪除

set extended-prompt \n\ 

節省更換和r un DDD。它會開始,因爲它應該。

因爲這個任務可能每次重複都很乏味,特別是如果像我一樣經常更改gdb設置,我建議你在你的shell環境中創建一個別名。

alias fix-ddd="sed '/not set/d' -i $HOME/.ddd/init" 

這最後一種方法的優點是它可以用於init文件中的任何錯誤設置,無需您的特定干預。


如果你不想使用CLI來修復init文件的另一種方法是編輯init文件如先前建議,如果它發生在你身上開任何理由則GDB Settings...面板記得在Edit菜單中禁用選項Save Options,並將其保持禁用狀態,直到下一個DDD重新啓動。


出於完整性的GDB懸掛期間擊打

CTRL+d 

起見(如由@hmogal說明)殺死GDB並重新啓動它允許使用DDD。不幸的是,這種方法不是一個好的解決方案,因爲它會擦除init文件中的整個GDB配置,甚至是您特別調整的設置。所以要注意。


一切與DDD 3.2.12測試。

1

使用Ctrl + D彈出一個對話框,要求重新啓動GDB來解決問題。在我的情況下刪除〜/ .ddd或init文件在這個特定的文件夾沒有幫助。