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

42 visualizzazioni (ultimi 30 giorni)
Microsoft Visual C/C++を用いたC-MEX S-Functionのデバッグ方法を教えてください。

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 3 Mar 2021
Modificato: MathWorks Support Team il 3 Mar 2021
例題ファイルを用い、次のバージョンを使用した場合について説明します。
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のデバッグについて(英語)

Più risposte (0)

Categorie

Scopri di più su C 共有ライブラリの統合 in Help Center e File Exchange

Prodotti


Release

R2008a

Community Treasure Hunt

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

Start Hunting!