GDB提供的功能
1、启动的程序,可以按照自定义的要求运行程序
2、可以让被调试的程序在指定的断点处停住(断点可以是条件表达式)
3、当程序被停住时,可以检查这个时候程序中发生的事
4、动态地改变程序的运行环境。
远程(交叉)GDB调试
调试桩(调试代理):在目标机上驻留有一小段代码。
调试桩作用:
1、在目标机上视线由主机上的调试器发送过来的调试命令。如:读写内存、读写寄存器、设置断点以及运行被调试程序。
2、向主机调试器报告目标机上发生的异常事件。如:断点命中、除0等程序错误。
典型交叉调试会话步骤
1、主机上的GDB调试器向调试桩发送一系列的内存写命令,以便将即将被调试的应用程序从主机下载到目标机的内存中
2、GDB调试器向调试桩发出断点设置命令,以便在应用程序合适的位置设置断点。
3、当运行中的应用程序遇到断点时,其执行路径被中断暂停,目标机的控制权重新回到调试桩手中。调试桩告知主机调试器,等待主机调试器发出的命令。主机通过发送调试命令来查询或者修改目标机上的内存,读写目标机处理器寄存器。最后告知调试桩继续执行应用程序。