您的位置:首页 > 编程语言

MAME: 如何进行源代码级的IDE调试?

2008-06-10 10:10 281 查看
http://www.cnblogs.com/neoragex2002/articles/740643.html

A.Mingw32环境的MAME源代码级IDE调试

Insight debugger是Redhat的GnuPro开发套件之一,一个基于Tcl/Tk的gdb前端,纯绿色而又短小精悍。它在win32平台下也有对应的Mingw32 build,因此跟mame的编译环境是完全匹配的。insight比较适合熟悉gdb和linux环境的开发者使用。以下是使用insight 6.3来对mame进行源代码级调试的基本步骤:

按照文献[1]的方式配置好Mingw32,将其安装至c:/mingw

将Insight解压至c:/insight

'make clean',删除所有的objs,重置编译环境

'make SYMBOLS=1',编译mame,别忘了符号编译选项'SYMBOLS=1'

启动C:/insight/bin/insight.exe

菜单File->Target Settings->Connection->Target,选择'Exec'

在下面的ExecArguments里面添上mame的命令行启动参数,如ddragon2

File->Open,加载刚刚编译好的mame.exe

Run->Run,启动程序,然后便可以设置断点、单步跟踪了





B.Visual Studio 2005环境下的Mame命令行编译


Visual Studio 2005无疑是Win32平台中最好的编译环境,那么我们可以直接利用它来编译mame吗? 当然可以! 实际上,Mame Team在编写makefile的时候早已考虑到了这一点,他们在windows/windows.mak定义了一个MSVC_BUILD标志,只要我们在make时开启这个标志,即可使用vc2005中的cl.exe、link.exe来替换mingw中的gcc等来进行编译和链接。下面是使用vs2005来编译mame的基本步骤:

确信已经安装好了Visual Studio 2005和DirectX SDK(必不可少)

确信已按照文献[1]的方式正确配置好了Mingw环境(因为我们要用到Mingw的make.exe)

在c:/mame中建立一个批处理文件setupvc.bat,用来建立vc编译所需的环境变量,其内容见后面

运行一次setupvc.bat,设置好所有编译相关的环境变量

然后'make clean',以防止残留下来的gcc objs干扰vc编译

输入'make MSVC_BUILD=1'即可开始编译

如果嫌麻烦,可以直接修改osd层的windows.mak,将1设置成为MSVC_BUILD的默认值

Tips 1: vs2005提供了一个名为'Visual Studio 2005 Command Prompt'的控制台快捷方式,同时自动设置相关的环境变量,参照这一思路,我们也可以创建一个'MAME Command Prompt'的console shortcut,将其属性中的目标设置成'%comspec% /k c:/mame/setupvc.bat',起始位置设成c:/mame即可,这样便不必每次手工输入'setupvc.bat'了,很方便

Tips 2: MSVC_BUILD标志可以配合TARGET、SYMBOLS和PM、I686等标志一起使用

Tips 3: Mame guys写了个非常smart的转换器,用来实现功能等价的gcc编译选项与不同版本的cl选项之间的相互转换,其源码为windows/vconv.c,感兴趣的可以读一下,其配置思想值得借鉴


rem 以下是setupvc.bat的脚本内容




@echo off


rem -------------------------------------------------------------------------------


rem 调用vs2005所提供的环境变量设置脚本




call "C:/Program Files/Microsoft Visual Studio 8/VC/vcvarsall.bat" x86


rem -------------------------------------------------------------------------------


rem 将DirectX SDK的include/lib路径添加至环境变量,请根据实际情况加以修改




set INCLUDE=%INCLUDE%;C:/Program Files/Microsoft DirectX SDK (October 2006)/Include


set LIB=%LIB%;C:/Program Files/Microsoft DirectX SDK (October 2006)/Lib/x86


rem -------------------------------------------------------------------------------

C.Visual Studio 2005 IDE环境下的Mame源代码级调试

既然能够用vs2005来编译mame,那么使用华丽而又强大的vs2005 IDE来对其进行源代码级调试便是非常轻松的一件事了,对于绝大多数不太熟悉linux环境的开发人员而言,这可比gdb/insight调试要轻松得多! 紧接着上面的vs2005编译步骤,下面继续给出调试步骤:

运行setupvc.bat,确保vs2005编译环境变量正确建立

'make clean',删除所有objs,重置编译环境

'make MSVC_BUILD=1 SYMBOLS=1',这里的SYMBOLS=1是关键,如果没有设置这个符号编译选项,将无法进行源代码级调试

编译完成之后,打开vs2005 IDE, File->Open->Project/Solution->Files of type选择Executable Files,注意,不是Open->File...,而是Open->Project/Solution...

File->Open->Project/Solution,加载刚刚编译所得的mame.exe

在Solution Explorer中设置一下mame.exe的Properties,在Command Arguments中添加mame的命令行参数,如ddragon2

然后Debug->Step Over,调试启动,看到了吗? 梦寐以求的IDE调试环境! 呵呵



参考文献:
[1] MAME架构、编译及配置浅析, Neoragex2002's Weblog, 2006.6
[2] Building MAME using Microsoft Visual Studio compilers, MameDev.org, 2006
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: