【问题标题】:Debugging Bison generated code with GDB使用 GDB 调试 Bison 生成的代码
【发布时间】:2009-02-19 02:33:58
【问题描述】:

我正在尝试进入我的 yyparse 函数,该函数在 Bison 生成的代码中定义,但我从 GDB 收到一条消息说

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

Bison 生成的文件名为 foo.cc。为什么要寻找foo.tab.c,而不是?

【问题讨论】:

    标签: gdb bison


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-01-07
        • 1970-01-01
        • 1970-01-01
        • 2014-04-24
        • 2013-09-29
        • 1970-01-01
        • 2013-07-09
        • 2017-03-27
        • 1970-01-01
        相关资源
        最近更新 更多