Microsoft Visual C/C++を用いたC-MEX S-Function​のデバッグ方法を教え​てください。

10 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2015 年 4 月 13 日
編集済み: MathWorks Support Team 2021 年 3 月 3 日
Microsoft Visual C/C++を用いたC-MEX S-Functionのデバッグ方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2021 年 3 月 3 日
編集済み: MathWorks Support Team 2021 年 3 月 3 日
例題ファイルを用い、次のバージョンを使用した場合について説明します。
1. Microsoft Visual C/C++ 2005
2. Microsoft Visual C/C++ .NET 2003
3. Microsoft Visual C/C++ 6.0
まず、ページ下部の関連ドキュメントにある例題ファイル(sfundebug.mdl,timestwo.c)を適当なフォルダにダウンロードしてください。
(注意)ファイルのダウンロードはダウンロード対象のリンクを右クリックし「対象をファイルに保存」を選択して行ってください。
■ Microsoft Visual C/C++ 2005
1) MATLABを起動します。
2) 下記コマンドをMATLABコマンドウィンドウに入力し、使用コンパイラを「Microsoft Visual C/C++ 2005」に設定します。
mex -setup
3) 下記コマンドをMATLABコマンドウィンドウに入力し、MEX-ファイルを作成します。
mex -g timestwo.c
4) Visual C/C++ 2005を起動し、「ツール」メニュー→「プロセスにアタッチ」を選択します。
5) 「プロセス」から「MATLAB.exe」を選択し、「アタッチ」ボタンを押します。
以上の手順でVisual C/C++ 2005とMATLABを接続することができます。
6) Visual C/C++ 2005の「ファイル」メニュー→「開く」→「ファイル」でtimestwo.cを開きます。timestwo.c内の適当な行にブレークポイントを挿入してください。
7) sfundebug.mdlを開き、シミュレーションを実行します。これでtimestwo.c内のブレークポイントで一旦停止します。
■ Microsoft Visual C/C++ .NET 2003
1) MATLABを起動します。
2) 下記コマンドをMATLABコマンドウィンドウに入力し、使用コンパイラを「Microsoft Visual C/C++ 7.1」に設定します。
mex -setup
3) 下記コマンドをMATLABコマンドウィンドウに入力し、C MEX S-Functionを作成します。
mex -g timestwo.c
4) Visual Studioを起動し、「ツール」メニュー→「デバッグ プロセス」を選択します。
5) 「プロセス」から「MATLAB.exe」を選択し、「アタッチ」ボタンを押します。
6) 「デバッグするプログラムの種類を選択します」内の「Native」にチェックを入れ、「OK」ボタンを押します。
  以上の手順でVisual StudioとMATLABを接続することができます。ここでプロセスGUIを一旦閉じます。
7) Visual Studioの「ファイル」メニュー→「開く」→「ファイル」でtimestwo.cを開きます。timestwo.c内の適当な行にブレークポイントを挿入してください。
8) sfundebug.mdlを開き、シミュレーションを実行します。これでtimestwo.c内のブレークポイントで一旦停止します。
■ Microsoft Visual C/C++ 6.0
1) MATLABを起動します。
2) 下記コマンドをMATLABコマンドウィンドウに入力し、使用コンパイラを「Microsoft Visual C/C++ 6.0」に設定します。
mex -setup
3) 下記コマンドをMATLABコマンドウィンドウに入力し、C MEX S-Functionを作成します。
mex -g timestwo.c
4) MATLABを終了します。
5) Windowsの「スタート」メニュー→「プログラム」(Windows XPの場合「すべてのプログラム」)→「アクセサリ」→「コマンド プロンプト」を選択します。
  コマンドプロンプトが開きますので、cdコマンド等でS-Functionのあるフォルダまで移動した後、下記コマンドを入力します。
・MATLAB R14SP2以前:
msdev timestwo.dll
 ・MATLAB R14SP3以後:
msdev timestwo.mexw32
上記手順でVisual C/C++が起動します。
6) Visual C/C++の「プロジェクト」メニュー→「設定」→「デバッグ」タブ→「デバッグセッションの実行可能ファイル」にmatlab.exeのパスを入力します。
 ()C:\Program Files\MATLAB71\bin\win32\MATLAB.exe
7) Visual C/C++の「ファイル」メニュー→「開く」でtimestwo.cを開きます。timestwo.c内の適当な行にブレークポイントを挿入してください。
8) Visual C/C++の「ビルド」メニュー→「デバッグの開始」→「実行」を選択します。”matlab.exeにはデバッグ情報がありません。”というウィンドウが表示されたら、「OK」ボタンを押してください。以上の手順でMATLABが起動します。
9) sfundebug.mdlを開き、シミュレーションを実行します。これでtimestwo.c内のブレークポイントで一旦停止します。
本件の関連情報が、下記 URL よりご覧いただけます。
●Product Support:1819 - How Do I Debug C MEX S-Functions?
(関連情報)
・Microsoft VS Code IDEを使ったMexのデバッグについて(英語)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeC MEX ファイル アプリケーション についてさらに検索

製品


リリース

R2008a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!