⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vc下调试mex文件.htm

📁 VC与Matlab混合编程文章.
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0113)http://bbs.sjtu.edu.cn/cgi-bin/bbsanc?path=/groups/GROUP_4/MathTools/DA6B7A1FF/D9BB618C8/D7EB33D16/M.1030198869.A -->
<HTML><HEAD><TITLE>SJTUBBS精华区文章</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK 
href="VC下调试mex文件.files/bbstyle.css" rel=stylesheet type=text/css>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR></HEAD>
<BODY>
<CENTER>
<TABLE class=title width="90%">
  <TBODY>
  <TR>
    <TH align=left class=title width="33%">文章阅读</TH>
    <TH align=middle class=title width="33%">饮水思源</TH>
    <TH align=right class=title width="34%">精华区</TH></TR></TBODY></TABLE>
<HR>

<TABLE class=doc>
  <TBODY>
  <TR>
    <TD class=doc><PRE>发信人: fanfan (泛泛), 信区: MathTools
标  题: VC下调试mex文件 (zz)
发信站: 饮水思源 (2002年08月24日22:22:08 星期六), 站内信件

发信人: energy (长白山), 信区: MathTools
标  题: Re: 怎样调试用C++编写的Mex函数
发信站: BBS 水木清华站 (Wed Aug 21 13:33:37 2002), 转信

8.8.2在VC环境中调试mex程序
为了对mex程序进行更全面的跟踪调试,我们可以用VC的集成开发环境。由于mex程序是
个DLL,这就需要特别的调试办法。
为了便于调试,编制mex程序最好是按照上节的办法,在VC中以Debug方式建立。以8.6.4
节中的mex程序为例,要通过以下步骤才能进行调试。
首先,通过菜单Project|Settings,打开工程选项对话框,在Debug属性页中,找到编辑
框Executable for debug session,在这里输入MATLAB.EXE的完整路径名,如图8-11所

图8-11 为调试mex程序设置matlab.exe的路径
接着在mex程序的源程序中合适的位置设置断点。
最后,按F5键运行程序,就可以开始调试。此时会出现一个对话框:

图8-12 警告窗口
该对话框是说matlab.exe没有调试信息,不能进行调试。这是正常的,因为matlab.exe
release方式编译的,其中不可能包含调试信息,我们也不需要对其进行调试。事实上也
无法通过VC调试它。对此我们直接单击OK按钮将其忽略即可。
实际上,F5所启动的程序是matlab.exe,此时会启动一个新的MATLAB进程。MATLAB启动
发信人: energy (长白山), 信区: MathTools
标  题: Re: 怎样调试用C++编写的Mex函数
发信站: BBS 水木清华站 (Wed Aug 21 13:33:37 2002), 转信

8.8.2在VC环境中调试mex程序
为了对mex程序进行更全面的跟踪调试,我们可以用VC的集成开发环境。由于mex程序是
个DLL,这就需要特别的调试办法。
为了便于调试,编制mex程序最好是按照上节的办法,在VC中以Debug方式建立。以8.6.4
节中的mex程序为例,要通过以下步骤才能进行调试。
首先,通过菜单Project|Settings,打开工程选项对话框,在Debug属性页中,找到编辑
框Executable for debug session,在这里输入MATLAB.EXE的完整路径名,如图8-11所

图8-11 为调试mex程序设置matlab.exe的路径
接着在mex程序的源程序中合适的位置设置断点。
最后,按F5键运行程序,就可以开始调试。此时会出现一个对话框:

图8-12 警告窗口
该对话框是说matlab.exe没有调试信息,不能进行调试。这是正常的,因为matlab.exe
release方式编译的,其中不可能包含调试信息,我们也不需要对其进行调试。事实上也
无法通过VC调试它。对此我们直接单击OK按钮将其忽略即可。
实际上,F5所启动的程序是matlab.exe,此时会启动一个新的MATLAB进程。MATLAB启动
,默认的工作目录为该工程的位置,本例中为:
D:\book\soft\mextest
为了运行mextest,还需要进入Debug目录:
<FONT class=col36>&gt;&gt; cd debug
</FONT><FONT class=col36>&gt;&gt; mextest
</FONT>键入mextest命令后,程序就会停止在VC环境里的程序断点处。如图8-13所示。

图8-13 调试中的mex程序
此时可以在Context窗口中看到最近处理的变量数值,并可以随意添加Watch。接下来就
以象通常的C程序一样对该mex程序进行调试了。
在MATLAB窗口中键入exit命令,即可退出本次调试工作。或者,也可以通过VC的菜单命
,强行中止调试工作,也会关闭MATLAB,VC返回编辑状态。

<FONT class=col33>【 在 pedetration (天堂鸟) 的大作中提到: 】
</FONT><BR><FONT class=col36>: 我用C++编写的Mex函数,如何在VC的环境下编译和调试呢?总不至于每一次都只能在M
</FONT>a
<FONT class=col36>: tlab下面来进行调试吧,如果是这样的话,是不是有一点太麻烦了?
</FONT>

--
http://energy.my.topun.com



--
<B></B><FONT class=col32>讨论数学软件的使用、编程、下载、安装<B></FONT></B>
<B></B><FONT class=col32>迎光临8区<B></FONT></B><FONT class=col35><BLINK>mathtools<B></FONT></BLINK></B><FONT class=col32>板<B></FONT></B>
<B></B><FONT class=col32>Matlab Mathematic Maple......     <B></FONT></B>
<B></B><FONT class=col32>混合编程、神经网络、遗传算法......<B></FONT></B>
<B></B><FONT class=col32>......                            <B></FONT></B>
<B><FONT class=col32>※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 211.80.37.180]</FONT></B>
</PRE></TR></TBODY></TABLE>
<HR>

<TABLE class=foot>
  <TBODY>
  <TR>
    <TH class=foot><A href="http://bbs.sjtu.edu.cn/">返回首页</A></TH>
    <TH class=foot><A 
href="http://bbs.sjtu.edu.cn/cgi-bin/bbssec">分类讨论区</A></TH>
    <TH class=foot><A 
  href="http://bbs.sjtu.edu.cn/cgi-bin/bbsall">全部讨论区</A></TH></TR></TBODY></TABLE></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -