使用GDB调试Bison生成的代码

时间:2009-02-18 17:43:37

标签: gdb bison

我试图进入我的yyparse函数,这是在Bison生成的代码中定义的,但是我收到了来自GDB的消息说

  

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

Bison生成的文件名为foo.cc.为什么要寻找foo.tab.c呢?

2 个答案:

答案 0 :(得分:2)

.cc文件实际上是Bison程序的输入。 foo.tab.c是输出 - 由Bison生成的C文件。它包含查找表以加速解析,并为您需要的大多数内容提供一些默认定义。此文件 已编译并对目标代码有所贡献。您可能会发现documentation有帮助。

答案 1 :(得分:1)

Bison的输入文件应遵循yacc约定并命名为foo.y.处理时,输出文件应为foo.tab.c.对于C ++,这是foo.yxx到foo.tab.cxx。

您是否正在为Bison使用-o或--output-file参数。这可能是问题所在,而是使用上面提到的约定。