2024年6月5日发(作者:)

GDB-sim模拟器结构剖析

一、引言

GDB,作为一种很优秀的开源调试器,是GNU开发工具链中很重要的产品,由于其

适用于多种平台及对多种cpu的支持而受到普遍的关注。在PC上进行开发嵌入式程序时

(例如mips、arm程序),不能在pc的x86平台上进行调试,只能通过仿真器连接开发

板进行调试或通过GDB内嵌的sim模拟器进行调试。在进行非驱动开发时,使用内嵌sim

模拟器调试是一个较好的选择。本文将对sim模拟器的结构及运行进行剖析。

二、配置及编译

产生可执行程序的过程为配置、编译、安装。

该模拟器支持ARM、MIPS、PowerPC、Hitachi Super-H等cpu。在编译前要通过

configure来指定target。例如:

./configure --target=mips

在configure后,执行命令make。产生可执行文件run和库文件libsim.a。

最后通过执行命令make install安装run到usr/local/bin目录下和安装libsim.a到

usr/local/lib目录下。

在这三个过程中用到了configure和Makefile两个文件。

第 1 页

1.configure分析

GNU的模拟器支持多类型的CPU,通过configure的target选项来配置不同的CPU

系统。

例如:在linux或cygwin下配置mips模拟器执行命令

./configure --target=mips

configure主要作用:

根据target决定模拟器挂载的设备

生成相关环境变量(包括源文件路径、可执行文件路径、库文件路径等)读入

文件,根据配置生成Makefile文件。

相关部分代码:

case "${target}" in

mips*-*-*) //target=mips的设置

# The MIPS simulator can only be compiled by gcc.

sim_target=mips

第 2 页