我有下面的代码片段的东西类似:我可以在包含的代码中设置断点吗?
// file alpha.c
void function_A()
{
int i;
#include "code.h"
}
和
//file beta.c
void function_B()
{
int i;
#include "code.h"
}
和
// file code.h
for(i = 1;i < 10;i++)
{
// do some stuff
if (very_rare_event)
{
// do something else
}
}
是的,我充分认识到它打破各种编码实践,但这是另一个故事(它是一个非常庞大,非常复杂,非常旧的系统的一部分,不会很快改变)。
我的问题是这样的:是否有可能在code.h中的“// do something else”点设置一个断点,以便您可以指定它是否是从alpha.c包含的实例或beta.c?如果是这样,怎么样?
显然,伟大的思想家都一样! – 2010-01-12 19:09:36
+1狡猾的开关使用。由于常量切换表达式可能会得到编译器警告,但是如果您使用这样的包含编写代码,我认为编译器警告可能是您最担心的问题。 – 2010-01-12 19:11:33
只有少数几个文件被涉及时,这可能是确定的,并且您不想经常更改或添加断点位置。但它不能太好 - 这太多了,你可能正在接近修复古怪编码实践的努力水平。 – 2010-01-12 20:51:50