Ниже приведен сертифицированный WAG (Wild Ass Guess):
Я бы рекомендовал просмотреть все макросы , используемые генератором синтаксического анализатора, и посмотреть, есть ли в них экранированные символы новой строки . Если есть, попробуйте удалить их все (соединив строки вместе), а затем перекомпилируйте файл. Затем посмотрел на код в отладчике - вещи могут внезапно вернуться туда, где они должны быть.
Предыстория: В 80-х годах я разработал и выпустил на рынок отладчик CDB. По мере того, как я переносил его на все, что имело имя U * NX, я хорошо знаком с особенностями различных компиляторов и тем, как они генерировали отладочную информацию в определенных ситуациях.
Одна распространенная проблема была связана с макросами, которые ускользали от них. Э.Г.
#define foo(bar) bar + \
snort + something_else
x = foo(5);
y = 2;
Если бы номер строки для y = 2;
должен был быть равным 5, многие таблицы символов в конечном итоге отображали бы его как 6, и каждая строка после него была бы смещена на единицу. И каждое использование такого макроса будет приводить к удалению номеров строк все дальше и дальше.