繁体   English   中英

如何调试GNU flex生成的程序?

[英]How to debug a program generated by GNU flex?

我正在使用flex生成词法分析器。 而且我已经成功地使用了命令flex scanner.l生成了一个名为lex.yy.c的C文件,然后将其编译为二进制文件“ scanner”。 我已经为gcc启用了-g选项。 当我使用gdb调试该程序时,我希望它进入lex.yy.cmain()函数中,但是,实际上,它进入了reader.l中。 当我尝试进入函数yylex() ,它直接转到下一行。

我的问题是:

  1. 为什么gdb进入而不是lex.yy.c
  2. 我该如何调试该程序? 任何信息或解释都很好。

为什么gdb进入而不是lex.yy.c的scan.l中?

因为flex生成一条#line "scanner.l"来将生成的代码与生成它的原始源相关联。

您可以手工编辑lex.yy.cc并删除这些#line指令,然后重建二进制文件,然后您将看到lex.yy.cc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM