2014-09-18 53 views
1

我有一個腳本,它是gdb的包裝器,它只是設置一些環境變量,然後運行gdb。如果我嘗試使用這個腳本來調試emacs中的程序,每當我用C-SPC設置一個斷點時,文件末尾的那一行從視圖中消失。在emacs中設置斷點時隱藏源緩衝區

劇本是

#/bin/sh 
source env.sh 
export VARIABLE_FOR_PROGRAM=false 
gdb "[email protected]" 

env.sh是幾行文字,目錄添加到LD_LIBRARY_PATH

GDB開始由(gdb (concat "gdb.sh --annotate=3 --cd=" dir " --args " exe-dir "/path/to/my.exe " file))))file傳遞給我運行程序的命令行參數。

如果我改用M-x gdb啓動GDB並接受默認命令(gdb --annotate=3 my.exe),那麼設置斷點可以正常工作。

describe-text-properties在該位置給出了這樣的輸出:

Text content at position 47591: 


There are 2 overlays here: 
From 47196 to 48046 
    semantic    [Show] 
From 47272 to 48046 
    face     nil 
    isearch-open-invisible semantic-tag-folding-show-block 
    semantic-decoration t 
    semantic-link-hook nil 
    semantic-secondary t 
    semantic-tag-folding t 
    semantic-tag-folding-comment-overlay nil 
    semantic-tag-folding-marker-string [Show] 
    semantic-tag-folding-tag [Show] 


There are text properties here: 
    fontified   t 

(point-max)是64141,因此它似乎是一個覆蓋不應涵蓋緩衝區的其餘部分。

我有一個很長的,複雜的.emacs腳本,我還沒有想出最小的安裝腳本來重現問題。鑑於上述屬性(並且isearch-open-invisible具有值引用語義),我懷疑這個問題還涉及CEDET /語義。

CEDET和gdb之間有已知的交互嗎?

是否有已知的問題通過腳本而不是直接運行gdb?

我似乎記得我創建了該腳本,因爲使用命令行source env.sh; export VAR=false; gdb ...運行GDB不起作用。

我使用emacs 23.4.1,G ++ 4.5.3和GNU GDB(GDB)的紅帽企業Linux(7.0.1-32.el5)

回答

0

看來已啓用'語義標籤 - 摺疊「模式,它來自'contrib'區域中CEDET的bzr版本。 'contrib'中的內容不是CEDET核心測試的一部分,所以我不能對它的行爲充滿信心。

作爲第一個猜測,首先禁用與語義標記摺疊模式相關的配置的任何部分以查看是否有幫助,如果不是,則需要完成所有的contrib加載明確在您的.emacs文件中。