XCode7中断点调试Matlab的mex文件


      当Matlab和C++进行混编的时候,MacOS中调试Mex的方法有几种,一是利用Xcode,二是利用LLDB。在这里我尝试用Xcode对matlab的mex文件进行断点调试。

步骤如下:

1.在Xcode中,新建一个空的工程:"New->Project->Other->Empty",起一个工程名 如debug_xxx;
         


2.将需要调试的CPP文件拖动到新建的xcode工程中,然后在matlab中,设置当前根目录为这个工程目录,然后用mex -g xxxx.cpp 进行编译.



3.创建一个Scheme,"Product->Scheme->New Scheme”   取Name为debug







在Run  >  Info  >  Executable下拉框中选中"Other..”,然后快捷键“ Command+Shift+G ”, 输入matlab可执行文件  MATLAB_maci64  的绝对路径:/Applications/MATLAB_R2014b.app/Contents/MacOS/MATLAB_maci64



勾选Wait for executable to be launched



4.创建一个 Symbolic断点,"Debug-> Breakpoints-> Create Symbolic Breakpoint” 



Name取为 NSApplicationMain,
Action中add action -> debugger command设为“ process handle -p true -n false -s false SIGSEGV SIGBUS”,
勾选“ Automatically continue after evaluating



4.随便在mex文件中设置一个断点,运行xcode工程,状态栏会显示 “Waiting for MATLAB to launch"



在终端命令行中进入到Matlab的可执行文件的目录,“ /Applications/MATLAB_R2014b.app/bin” ,  输入./matlab  启动,


然后xcode状态显示为debug监听状态,在Matlab 中执行含有mex文件的m程序,xcode中会捕捉到,并在之前设置的断点处停下,之后就可以进行常规的xcode断点调试啦




参考:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值