我正在尝试在Eclipse CDT 6.02版中使用gdb / mi调试器。在我调试的过程中,我可以轻松地逐步完成该程序,直到我到达以下代码块的片段。
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文件没有问题)。
可能相关的其他信息:文件位于clearcase快照视图中,但未检入源代码管理中。我不认为这会导致这样的错误,但明确的情况已经给我造成了很多随机错误,我认为值得一提。
提前致谢
答案 0 :(得分:1)
由于我不知道快照视图可能在此过程中产生任何副作用 动态视图可以将部分目录视为“未选择”(然后是不可读的) 您还有symlink to dynamic view set on drive的问题。
但快照视图只不过是硬盘上的工作树了。
要排除任何“ClearCase干扰”,您可以尝试调试任何类型的任何视图(基于当前快照视图的内容)完全复制 之外的项目,并查看是否问题依然存在。