Отладка сгенерированного Bison кода с помощью GDB - PullRequest
0 голосов
/ 18 февраля 2009

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

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

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

Ответы [ 2 ]

2 голосов
/ 18 февраля 2009

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

1 голос
/ 18 февраля 2009

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

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

...