我试图在每个有意义的函数上设置断点,但程序在到达任何一个之前退出。有没有办法让程序从一开始就以分步模式运行,这样我就可以看到发生了什么?
我正在尝试调试 /usr/bin/id 如果它很重要(我们有自定义插件并且它行为不端)
PS Start 命令在这里对我不起作用(它应该是评论,但我没有足够的代表)
获取程序入口点地址并在该地址插入断点。
一种方法是制作信息文件,例如“入口点:0x4045a4”。然后执行“break *0x4045a4”。程序运行后立即停止。
从这里开始,您可以使用单步指令(如 step 或 stepi)继续。
您没有说明您要调试的系统。如果代码在只读内存中,您可能需要使用硬件断点 (hbreak),前提是该系统支持它们。
小智 5
使用启动命令
\n\n\n\n\n\xe2\x80\x98start\xe2\x80\x99 命令相当于在主过程的开头设置临时断点,然后调用 \xe2\x80\x98run\xe2\x80\x99 命令。
\n
例如
\n\n带有调试信息main 的程序,其用法如下:main arg1 arg2
\n\ngdb main\n(gdb) start arg1 arg2\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |