GDB有一些奇怪的地方。我正在研究ELF Linux可执行文件。 我正在程序入口点放置一个断点。程序在到达断点之前崩溃。 我想从一开始就一步一步地运行我的程序。 如果我在GDB中输入“step”命令,我得到一个错误信息,因为程序没有处于运行模式。 你能告诉我怎样才能达到程序的第一条指令吗?我认为这是动态加载程序,但我不知道它在哪里...GDB从入口点一步一步
1
A
回答
0
我想从一开始就一步一步地运行我的程序。
这是非常困难的调试器做的事:在执行未重定位ld-linux.so.2
,其中自再定位开始,初始化libc.so.6
,那么任何其他直接链接库,最终将控制权交给a.out
切入点。
调试器必须在自重定位地址之前和之后处理这一事实,这使得它很难/令人困惑。
幸运的是,即使对于ld-linux
开发者来说,它也通常不是必需的。您应该放弃这样的想法,即您将能够执行ld-linux
执行,并找出如何通过其他方式调试您实际遇到的任何问题(包括在此询问您的实际问题)。
+0
我认为这是操作系统,用ld-linux来加载库。也许我没有好的图书馆,我会朝这个方向看,谢谢 – Bob5421
相关问题
- 1. GDB一步一步调试两个线程
- 2. 加载div(淡入)一步一步
- 3. Rails 3注册步骤一步一步
- 4. 无法步入一个类的方法GDB
- 5. coq一步一步简化?
- 6. Java Web Start。一步一步
- 7. 一步一步的火法
- 8. jQuery一步一步动画
- 9. Iex pry一步一步来?
- 10. C#一步一步执行
- 11. 一步一步在Windows 7
- 12. Unity3D一步一步移动
- 13. 用gdb检查的sprintf()函数步步
- 14. 一次构建DateTime一步一步
- 15. jquery验证,一步一步验证点击功能
- 16. 让精灵一步一步移动到鼠标点击位置
- 17. 安装并运行节点模块 - 一步一步(EventDrops)
- 18. 如何让GDB在每一步之后做一个'列表'?
- 19. 如何从X86切换GDB CPU寄存器上下文一步一步调试时,X64-32
- 20. 入门前面一步步测试的在Groovy中了SoapUI一步
- 21. 如何下一步输入?
- 22. 进一步深入json
- 23. 一步
- 24. 在Android Studio中导入库:需要一步一步的解释
- 25. 为什么我们不能一步一步输入和操作?
- 26. Emacs + GDB + SCons +逐步调试
- 27. VBSCRIPT随机带一步一步
- 28. 一步一步修剪空白
- 29. 如何运行@RunWith(Cucumber.class)一步一步
- 30. 一步一步的天气API教程
可能重复[如何强制gdb在程序执行开始后立即停止?](http://stackoverflow.com/questions/18694620/how-to-force-gdb-to-stop-right-after程序开始执行) – dbrank0
不,它不是一回事。我认为代码是在 – Bob5421
之前运行的所以如果你在入口点(不是主要)上放置一个断点,并且运行,它会在碰到断点之前崩溃? – dbrank0