此示例显示如何调试ylime.
墨西哥人文件使用Xcode..
复制源MEX文件
的yprime.c
源代码在matlabroot.
文件夹中。在MATLAB®,将文件复制到本地,可写文件夹,例如/用户/共享/工作
.如果不存在,请创建文件夹,并将其设置为Matlab中的当前文件夹。
workdir = fullfile(' / ',“用户”,“共享”,‘工作’);mkdir(workdir)copyfile(fullfile(matlabroot,'extern','例子',墨西哥人的,“yprime.c”), workdir) cd (workdir)
编译源mex文件
用源mex文件编译-G
选项添加调试符号。Matlab创建二进制MEX文件,yprime.mexmaci64
.
梅克斯-Gyprime.c
创建空Xcode.工作区进行调试
在Xcode.,
选择文件>新的>工作区.
在文件选择对话框中,在保存为:领域debug_yprime.
.
选择/用户/共享/工作
用于存储工作区的文件夹。要选择文件夹,要么导航到文件夹,要么按命令+ Shift + G键盘快捷键切换进入文件夹:菜单并键入完整路径/用户/共享/工作
.
点击节省.
添加ylime.
文件Xcode.工作区
添加yprime.c
文件到工作区中,将其从/用户/共享/工作
的左侧导航栏Xcode.工作区窗口。
清除目的地选项,将项目复制到目标组的文件夹中(如果需要)
.清除此选项可以将断点添加到MATLAB运行的文件中。
要添加文件,单击结束.
创建计划
选择产品>计划>新计划.......
离开目标设置为没有任何
.
集的名字来调试
.
新闻好的.方案编辑对话框打开。
设置运行>信息>可执行的选择其他....在文件选择窗口中,按命令+ Shift + G键盘快捷键切换进入文件夹:菜单。指定完整的路径matlab_maci64.
MATLAB应用程序包中的可执行文件。完整路径的一个例子是/应用程序/ MATLAB_R2016a.app /内容/ MacOS / MATLAB_maci64
.
选择等待可执行文件被启动.
点击关闭.
添加符号断点
选择调试>断点>创建符号断点.
集象征来NSApplicationMain
.
要添加以下调试器命令,单击添加动作:
进程句柄-p true -n false -s false SIGSEGV SIGBUS
如果断点编辑器窗格消失,请右键单击新的断点并选择编辑断点…回到它
检查在评估行动后自动继续.
在MEX文件中设置断点
选择视图>航海家>显示项目导航.
点击yprime.c
在导航栏中。
单击要暂停执行的行旁边的gutter,例如,在中的第一行mexfunction()
.
有关更多信息,请参阅Xcode.文档。
开始Xcode.调试和运行MATLAB
要启动调试器,请输入Xcode.选择产品>运行.或者,单击运行按钮,它带有工作区窗口左上角附近的三角形图标。
等待Xcode.显示消息等待MATLAB发射
在工作区窗口的顶部。此操作可能需要几秒钟,特别是您第一次使用此过程。
启动MATLAB可执行文件Mac终端提示符(见从终端窗口开始)或从发现者。如果MATLAB已经在运行,右键单击Dock中的MATLAB图标并选择打开MATLAB的其他实例.
Xcode.显示消息MATLAB:调试
.
运行二进制MEX文件MATLAB
在MATLAB的新实例中,将当前文件夹更改为文件夹ylime.
文件并运行MEX文件。
workdir = fullfile(' / ',“用户”,“共享”,‘工作’);cd (workdir) yprime (1:4)
的Xcode.调试器停止yprime.c
在第一个断点。
此时,您可以逐步通过您的代码,检查变量等,但是对于此练习,请选择继续来自调试菜单。的执行ylime.
完成和MATLAB显示:
ANS = 2.0000 8.9685 4.0000 -1.0947
只要这个Matlab的实例继续运行,您就可以重复执行MEX文件Xcode.在您设置的断点处停止。
LLDB是可用的调试器Xcode.在苹果系统系统。有关其使用的更多信息,请参阅使用调试器提供的文档。
在这个过程中,>>
表示MATLAB命令提示符,并且%
代表一个Mac终端提示符。调试器提示符为(lldb)
.
这个例子调试ylime.
没有Java的MEX文件®虚拟机(JVM™)。在此模式下运行MATLAB可最大限度地降低内存使用率并提高初始启动速度,但限制功能。例如,您无法使用桌面。
用源mex文件编译-G
选项,它构建包含调试符号的文件。在终端提示符下,输入:
% mex -g yprime.c
使用该启动LLDB调试器马铃薯草
功能-D.
选项:
% matlab -Dlldb
开始使用matlab-nojvm
启动标志:
(LLDB)运行-nojvm
在MATLAB中,使用dbmex
函数并运行MEX文件:
>> DBMEX ON >> YLIME(1,1:4)
调试器捕获用户定义的信号,提示符返回到lldb。
现在可以开始调试了。
在以下位置设置断点通常很方便梅功能
所以你在入口程序的开始处停止。
(LLDB)B MexFunction
触点断点后,可以使用任何调试器命令检查变量,显示内存或检查寄存器。要从断点开始,请键入:
(lldb) c
在最后一个断点停止后,键入:
(lldb) c
ylime.
完成和MATLAB显示:
ANS = 2.0000 8.9685 4.0000 -1.0947
在MATLAB提示符中,输入以下命令将控制返回给调试器:
>> DBMEX停止
或者,如果你已经完成了MATLAB的运行,输入:
> >退出
当你完成调试器时,输入:
(lldb)问
您返回到Terminal提示符。
要用JVM调试MEX文件,请先使用句柄Sigsegv.
和Sigbus.
处理信号。启动MATLAB并停在第一条指令。
在Terminal提示符下,编译MEX文件并启动lldb调试器。
% mex -g yprime.c % matlab -Dlldb .c
开始matlab。
(lldb)进程启动
当这些进程信号出现时,告诉进程继续。
(LLDB)过程句柄-p true-n false -s false sigsegv sigbus
您可以设置断点并执行其他调试器命令。