桜朔

さくらさく

                                      スポンサーリンク

MATLAB/SimulinkのMEXによるS-FunctionをVisual Studioでデバッグ

こんにちは,櫻井朔@hajimesakuraiです.

長ったらしいタイトルですね. 以前述べたように,Mathworksは基本的に推奨していないようですが,MATLAB/SimulinkでS-FunctionをC言語などで作成したいときがあります.MATLAB言語で書いていればデバッグは容易ですが,C言語で書いているものはデバッグできない...わけではなく,実はVisual StudioやXcodeを使用すれば可能です.

コンパイルオプションの変更

通常はコンパイルするときのオプションは

mex -v -largeArrayDims hoge.cpp

で良いですが,デバッグをしたいときは

mex -g -largeArrayDims hoge.cpp

とします.これによりシンボリック情報の追加と,コードの最適化を無効にします.

Visual Studioの設定

コンパイルした.cや.cppファイルをVisual Studioで開き,「ctrl-alt-p」を押すか,「ツール」→「プロセスにアタッチ」を選択します.

f:id:hajimesakurai:20150824133322p:plain

すると,下図のように実行中のプログラムが表示されるので,「MATLAB」を選択します.これだけです.

f:id:hajimesakurai:20150824133316p:plain

以上によりデバッグが可能となり,例えばVisual Studio側でブレークポイントを置いてSimulinkのプログラムを実行すると,きちんとそこで止まってくれます.もちろん変数の参照なども可能です.

f:id:hajimesakurai:20150824133326p:plain

Visual Studioでは簡単なのですが,Xcodeでは若干手順が増えます).

是非活用してみてください.

それでは.

MATLAB and Simulink Student Suite R2015a

MATLAB and Simulink Student Suite R2015a

MATLABとOctaveによる科学技術計算

MATLABとOctaveによる科学技術計算