2011-05-06 78 views
3

我想上節目X命令gdb要改用的X現有的調試會話,如果它已經存在,而不是信號「這一計劃已經被調試」在gud-common-init錯誤的Emacs GDB重新運行行爲

我認爲這很重要,因爲它使gdb行爲協調與大多數其他Emacs的交互,例如,find-fileswitch-to-buffer等的標準行爲,從而創造減少混亂給用戶。

到目前爲止,我已經修改了含

(error "This program is already being debugged")) 

行了,而不是做

(message "This program is already being debugged") 

至少防止錯誤的產生。但是,函數gdb會執行一些額外的初始化,這些初始化不應導致一些不必要的延遲。這是一個todo項目還是我錯過了一些這樣做的gud/gdb函數?

很多感謝, 每Nordlöw

+0

請考慮通過'M-x report-emacs-bug'提交增強請求。 – Drew 2012-01-03 17:12:20

回答

0

您可以隨時重新命名緩衝區。這就是我可以在同一個可執行文件上運行多個gdb會話的方式。它不是自動的,但它是一個有效的工作。

例如,如果我的可執行文件被稱爲pump,則在運行gdb時,將生成一個名爲* gud-pump *的緩衝區,該緩衝區代表gdb會話。從這個緩衝區做元-X命名緩衝* GUD-泵1 *

然後再次調用GDB,你將有兩個GUD會議,一個* GUD泵** GUD-泵1 *。會議是分開的,不應該干涉(儘管它們可以相互作用)。