【问题标题】:GDB - How to handle "No Symbol Table"GDB - 如何处理“无符号表”
【发布时间】:2015-02-28 01:12:45
【问题描述】:

我有一个想要检查的应用程序,但我没有资源来重建它并创建符号表,如 here (gcc -g my_app.c)。

当我调用 info locals 时,我收到以下错误“没有可用的符号表信息

当我使用 Eclipse 时,即使我没有库的源代码,它也可以将当前函数的参数解析为 arg0, arg1... argN 如果我记得的话正确地也是对象的成员。

有什么方法可以生成自定义/通用/默认符号表,满足 GDB 并允许我查看局部变量和参数的值?

【问题讨论】:

  • 没有源代码、调试版本或符号表?你比圣诞火鸡还饱。
  • @MartinJames 你有更建设性的意见吗?
  • 很遗憾,没有。我唯一的选择是非建设性的评论。如果你没有符号表也没有调试版本,那你什么都没有。
  • @MartinJames 那么它是如何在 Eclipse 中完成的呢?
  • 顺便说一句,这就是我更喜欢免费软件的原因:当我需要它时,我总能得到源代码并研究它。实际上,避免使用专有软件并不那么痛苦。因此,如果您没有源代码,请不要使用您的应用程序(并尝试用一些免费软件替换它)

标签: c gdb symbols debug-symbols symbol-table


【解决方案1】:

答案是否定的。

本地符号仅对调试有用,因此没有其他选择。如果它们被丢弃,它们就消失了。

【讨论】:

  • 为什么 args 在运行时不可见?换句话说,如果我读到“没有可用的符号表信息”,我如何才能看到传递给当前函数的参数?
  • 一个函数只是获取堆栈...参数在某处,您可能可以检查堆栈,但要弄清楚每个字节的含义可能会很棘手。
猜你喜欢
  • 2011-10-26
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
相关资源
最近更新 更多