【问题标题】:Debugging C++ code with gdb in Eclipse在 Eclipse 中使用 gdb 调试 C++ 代码
【发布时间】:2013-09-29 07:28:07
【问题描述】:

我正在使用 Eclipse gdb 调试 c++ 代码。当进入 yyparse() 时,实际上是通过 flex 和 bison 发生的

在“eqv_yacc.tab.c”中找不到源文件找到文件或编辑 包含其位置的源查找路径。

但是 thr 不再是文件 eqv__yacc.tab.c,只有 eqv_yacc.c。我的 makefile 中的名称已更改。如何解决此问题以指向 eqv_yacc.c 而不需要调试器来查找 eqv_yacc .tab.c?以前有人遇到过同样的问题吗?

Makefile code:

eqv_yacc.C: 
eqv_yacc.y $(YACC) $(YFLAGS) eqv_yacc.y 
sed s/yy/eqvyy/g eqv_yacc.tab.c > eqv_yacc.C 
sed s/yy/eqvyy/g eqv_yacc.tab.h > eqvy.tab.H 
$(RM) eqv_yacc.tab.h 
$(RM) eqv_yacc.tab.c 

【问题讨论】:

  • 您在 Makefile 中重命名文件是否有原因?如果你使用例如bison 然后它有一个选项-o 来命名输出文件(参见bison manual page),也许你可能想用它来代替。
  • 你不使用 Eclipse 调试代码(它主要是一个编辑器,带有一些图形前端到诸如编译器、调试器等实用程序)。您使用gdb 调试代码。你应该展示你的Makefile 规则构建eqv_yacc.c。请编辑您的问题以表明这一点。
  • 嗨@BasileStarynkevitch 这是我在makefile 中找到的。makefile 是由其他人编写的。我不知道他们为什么更改名称并删除文件。 eqv_yacc.C: eqv_yacc.y $(YACC) $(YFLAGS) eqv_yacc.y sed s/yy/eqvyy/g eqv_yacc.tab.c > eqv_yacc.C sed s/yy/eqvyy/g eqv_yacc.tab.h > eqvy .tab.H $(RM) eqv_yacc.tab.h $(RM) eqv_yacc.tab.c

标签: c++ eclipse debugging


【解决方案1】:

那些sed 命令用于将yy 的所有实例替换为eqvyy。您也可以添加它以替换源文件中的名称:

sed s/yy/eqvyy/g eqv_yacc.tab.c | sed s/eqv_yacc\.tab\.c/eqv_yacc.c/g > eqv_yacc.C

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 2018-11-20
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2012-09-24
    • 2014-04-24
    • 2011-06-26
    相关资源
    最近更新 更多