2010-06-03 45 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