Отладка сгенерированного кода Bison с помощью GDB

Я пытаюсь войти в свою функцию yyparse, которая определена в сгенерированном коде Bison, но получаю сообщение от GDB, говорящее

Reading file "foo.tab.c"...No such file or directory.

Файл, сгенерированный Bison, называется foo.cc. Почему вместо этого он ищет foo.tab.c?


person Scottie T    schedule 18.02.2009    source источник


Ответы (2)


Файл .cc на самом деле является входными данными для программы Bison. foo.tab.c — это ВЫВОД — C-файл, сгенерированный Bison. Он содержит таблицы поиска для ускорения синтаксического анализа и некоторые определения по умолчанию для большинства всего, что вам нужно. Этот файл скомпилирован и входит в состав объектного кода. Вам может быть полезна документация.

person dirkgently    schedule 18.02.2009

Входные файлы для Bison должны соответствовать соглашению yacc и называться foo.y. При обработке выходной файл должен быть foo.tab.c. Для C++ это от foo.yxx до foo.tab.cxx.

Используете ли вы аргумент -o или --output-file для Bison. Это может быть проблемой, вместо этого используйте упомянутые соглашения.

person Community    schedule 18.02.2009