2010-06-03 66 views
1

我正在嘗試在Eclipse CDT版本6.02中使用gdb/mi調試器。在我調試時,我可以輕鬆地完成程序,直到遇到以下代碼塊的代碼片段。Eclipse CDT調試器問題,v。.metadata不存在

ENUM_START_TYPE My_Class::some_function(const char * c, const char * e) 
{ 
    ENUM_START_TYPE result = GENERIC_ENUM_VALUE; 

    if (c[0] == '<') 
    { 
     result = do_something() 
    } 

    ... 
    MORE CODE 
    ... 

    return result; 
} 

當調試器到達這一行時。

if (c[0] == '<') 

它開始探索的代碼段,它無法找到,直到它打開包含/projectname/.metadata一個標籤,簡單地宣佈:

"Resource '/project_name/.metadata' does not exist. 

此時調試器終止與程序沒有理由爲什麼。

我想要做的就是跨越這行代碼,因爲它確實和比較字符一樣微不足道。

我的問題是:爲什麼會發生這種情況?這與調試器有關嗎?還是它與我的代碼有關,或者與我的代碼有什麼關係。另外,什麼是.metadata,爲什麼當它清晰存在時我不能定位和打開該文件(我可以在沒有問題的情況下找到並打開.meta文件)。

可能相關的其他信息:文件位於明文快照視圖中,但未檢入源代碼管理。我不認爲這會導致這樣的錯誤,但明確的情況已經給我帶來了如此多的隨機錯誤,我認爲這值得一提。

在此先感謝

+0

更新:我已經測試了clearcase快照之外的問題,並且問題仍然存在。作爲一些額外的信息,當我在調試時,我可以「觀察」c的內容。變量c只包含從文件讀入的1024字節字符串。所以問題仍然沒有解決。 – 2010-06-04 15:05:23

回答

1

由於我不知道有任何副作用的快照視圖可能在這個過程中。
動態視圖可以將部分目錄視爲「未選中」(然後是不可讀的)。
您也有symlink to dynamic view set on drive的問題。

但是快照視圖只不過是硬盤上的工作樹。

,以排除任何「ClearCase的干擾」,你可以嘗試和調試項目完全複製任何形式(根據您當前的快照視圖的內容)的任何視圖之外,看看問題是否仍然存在。

+0

感謝您對clearcase的建議,我測試了快照視圖之外的程序,並且錯誤仍然存​​在,所以我們幾乎可以將此視爲可能的問題。 – 2010-06-04 15:02:08