我正试图逐步完成一个具有两阶段预处理阶段的C项目(fossil-scm)。
首先,有一个自定义构建的预处理程序,它通过文件修复某些特定于项目的宏,创建包含标题以及其他一些内容。它会创建一堆.c
和.h
个文件。然后像往常一样编译结果,通过“常规”预处理器。
我从第一部分中获取结果并从中创建了一个visual-studio项目。当我尝试调试它时,它正在跳过我的断点。我发现每个文件都以
开头#line 1 "src/original_filename.c"
我可以注释掉这一行并让调试工作,但我宁愿使用这一行来在原始环境中进行调试。
于是......
如何设置它以便编译已处理的文件,但使用#line
指令为我提供原始文件中的调试功能?
我尝试将src
目录放在文件旁边,如果我按F10
启动程序,它就有效,但我不知道如何将原始文件放入项目资源管理器中,以便我可以轻松地打开它们并放置断点,而无需编译器尝试编译它们。
答案 0 :(得分:1)
从我使用Visual Studio 2012的实验(2010可能表现相似),在“原始”源文件(“实际”源文件中的#line指令引用的源文件)中设置断点仅在以下情况下正常工作:
1)我将“原始”源文件添加到项目中。 (例如,添加 - >现有项目......)
2)我从构建中排除了“原始”源文件。 (例如,右键单击 - >属性 - >从构建中排除=是)
有点迟到的答案,但我希望这有助于某人。