MEX関数のデバッグ方法について

11 visualizzazioni (ultimi 30 giorni)
koji fukumoto
koji fukumoto il 26 Ott 2018
Commentato: Kazuya il 30 Ott 2018
上記URLに記載の手順で、VC2012を用いたデバッグを行おうとしましたが、 ブレークポイントで停止することなく、yprimeが終了します。
URLに記載されていない注意点などございますでしょうか?
7の手順を実行した際の画面キャプチャを添付します。
図のように、ブレークポイントはいずれも無効となっておりますが、これは問題無いのですよね?
(手順7にも「実行可能ファイルをまだ実行していない場合、コード行の隣にブレークポイントとともに表示される [!] アイコンは無視してください。」とありますし…)
よろしくお願い致します。

Risposta accettata

Kazuya
Kazuya il 28 Ott 2018
Visual Studio 2015 で試してみましたが、、同じメッセージ「ブレークポイントは、現在の設定ではヒットしません。このドキュメントのシンボルが読み込まれていません。」が出ますがうまくいきました。ただ、
mex -g yprime.c
ではなく
mex yprime.c
と -g 無しでコンパイルするとブレークポイントで止まらず。この点は大丈夫ですか?
  3 Commenti
koji fukumoto
koji fukumoto il 30 Ott 2018
アタッチ先を「ネイティブコード」にすることで、ブレークポイントに泊まることを確認しました。
本当にありがとうございました!
Kazuya
Kazuya il 30 Ott 2018
よかったです!

Accedi per commentare.

Più risposte (1)

koji fukumoto
koji fukumoto il 29 Ott 2018
返信ありがとうございます。
> と -g 無しでコンパイルするとブレークポイントで止まらず。この点は大丈夫ですか?
はい、URLに記載の通り実行しておりますので(コマンドもコピペしておりますので)大丈夫です。
レスポンスも以下のように返ってきています。
>> mex -g yprime.c
'Microsoft Visual C++ 2012 (C)' でビルドしています。
MEX は正常に完了しました。
こちらの詳細な手順を以下に記します。 お手数ですが、何かお気づきの点などございましたらご指摘頂きたく。
-----------------------------------------------------
1."C:\work\"が空であることを確認
2.MATLAB R2018a」を起動
3.コマンド「cd C:\work」を実行
4.以下のコマンドを実行
  cc = mex.getCompilerConfigurations('C','Selected');
  cc.Name
  ⇒'Microsoft Visual C++ 2012 (C)'と表示されることを確認
5.以下のコマンドを実行
  copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c'),'.','f')
  mex -g yprime.c
  ⇒"C:\work\"に「yprime.c」「yprime.mexw64」「yprime.mexw64.pdb」が存在することを確認
6.VC2012を起動し、[ツール]-[プロセスにアタッチ]-[MATLAB.exe]にアタッチ
7.VC2012[ファイル]-[開く]-[ファイル]"C:\work\yprime.c"を選択、mexFunction内にブレークポイントを設定
8.MATLABからコマンド「yprime(1,1:4)」を実行
 ⇒即座に「2.0000 8.9685 4.0000 -1.0947」と結果が返ってくる
-----------------------------------------------------
よろしくお願いします。
  1 Commento
Kazuya
Kazuya il 29 Ott 2018
詳細ありがとうございます。ドキュメントにある通りの手順ですね。。失礼しました。
上の回答にコメント追記しました。

Accedi per commentare.

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!