0

我正在尝试逐步完成具有2阶段预处理阶段的C项目(化石scm)。调试预处理代码

首先出现的是一个定制的预处理程序,即经过文件,并修复某些特定项目的宏,创建了包括报头,和一些其他的东西。它创建了一堆.c.h文件。然后像往常一样编译结果,通过“常规”预处理器。

我从第一部分获得了结果,并从中创建了一个visual-studio项目。当我试图调试它时,它跳过了我的断点。我发现,每个文件始于

#line 1 "src/original_filename.c" 

我可以注释掉这一行,并得到调试工作,但我宁愿使用这条线在原来的背景下得到调试。

所以...
我怎样才能设置它,以便它编译处理的文件,但使用#line指令给我调试功能,在原来的文件吗?
我想只是把旁边的文件src目录,和它的作品,如果我按F10启动程序,但我不知道如何让原来的文件添加到项目资源管理器,这样我可以轻松地打开它们,并在没有编译器试图编译它们的情况下放置断点。

回答

1

从我的实验与Visual Studio 2012(2010年可能表现相似),在“原始”源文件中设置断点(由#line指令中的“真正的”源文件中引用的源文件)只工作正常,如果:

1)我将“原始”源文件添加到项目中。 (例如添加 - >现有项...)

2)我从构建中排除的“原始”的源文件。 (例如,右击 - >属性 - 从构建>排除=是)

一晚的答案有点,但我希望这可以帮助别人。