【问题标题】:GDB step by step from entry pointGDB从入口一步一步
【发布时间】:2016-06-22 04:06:57
【问题描述】:

GDB 有点奇怪。我正在开发 ELF Linux 可执行文件。 我在程序入口点上放了一个断点。程序在到达断点之前崩溃。 我想从头开始逐步运行我的程序。 如果我在 GDB 中键入“step”命令,我会收到一条错误消息,因为程序未处于运行模式。 你能告诉我如何达到程序的第一条指令吗?我认为它是动态加载器,但我不知道它在哪里......

【问题讨论】:

标签: gdb elf


【解决方案1】:

我想从头一步步运行我的程序。

调试器很难做到这一点:执行从未重定位的ld-linux.so.2 开始,它自重定位,初始化libc.so.6,然后是任何其他直接链接的库,最后将控制权传递给a.out 入口点.

调试器必须同时处理自重定位地址之前和之后的事实,这使得它变得困难/混乱。

幸运的是,这通常也不是必需的,即使对于ld-linux 开发人员也是如此。您可能应该放弃您将能够逐步执行ld-linux 的想法,并弄清楚如何通过其他方式调试您实际遇到的任何问题(包括在此处寻求您的实际问题的帮助)。

【讨论】:

  • 我认为这是使用 ld-linux 来加载库的操作系统。也许我没有好的图书馆,我会朝这个方向看,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 2011-12-15
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多