0

Я пытаюсь выполнить проект C (Fossil-scm), который имеет двухфазную предварительную обработку.Отладка предварительно обработанного кода

Сначала создается пользовательская программа предварительной обработки, которая проходит через файлы и исправляет определенные макросы для проекта, создает заголовки include и несколько других вещей. Он создает кучу файлов .c и .h. Результат затем компилируется как обычно, проходя через «обычный» препроцессор.

Я взял результат из первой части и создал визуально-студийный проект из него. Когда я попытался отладить его, он пропустил мои точки останова. Я обнаружил, что каждый файл начинается с

#line 1 "src/original_filename.c" 

Я могу прокомментировать эту линию и получить отладку, чтобы работать, но я предпочел бы использовать этой линии, чтобы получить отладки в исходном контексте.

Итак ...
Как я могу настроить его так, что он собирает обработанные файлы, но использует #line директивы, чтобы дать мне возможности отладки в исходных файлах?
Я попытался просто поместить каталог src рядом с файлами, и он работает, если я запустил программу, нажав F10, но я не знаю, как получить исходные файлы в проводнике проекта, чтобы я мог их легко открыть и размещать точки останова без компилятора, пытаясь их скомпилировать.

ответ

1

Из моих экспериментов с Visual Studio 2012 (2010 может вести себя подобным образом), установив контрольные точки в «оригинальных» исходных файлов (исходные файлы, на которые ссылается директивами #line в «реальных» исходных файлов) работает только правильно, если:

1) Я добавляю исходные исходные файлы в проект. (Например, Добавить -> Существующий элемент ...)

2) Я исключаю исходные исходные файлы из сборки. (Например, правая кнопка -> Свойства -> Исключить из сборки = Да)

Немного позднего ответа, но я надеюсь, что это поможет кому-то.

Смежные вопросы