[英]How to debug a program generated by GNU flex?
我正在使用flex生成词法分析器。 而且我已经成功地使用了命令flex scanner.l
生成了一个名为lex.yy.c
的C文件,然后将其编译为二进制文件“ scanner”。 我已经为gcc启用了-g
选项。 当我使用gdb调试该程序时,我希望它进入lex.yy.c
的main()
函数中,但是,实际上,它进入了reader.l中。 当我尝试进入函数yylex()
,它直接转到下一行。
我的问题是:
lex.yy.c
? 为什么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.