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

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

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

koji fukumoto
koji fukumoto 2018-10-29
返信ありがとうございます。
> と -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 个评论
Kazuya
Kazuya 2018-10-29
詳細ありがとうございます。ドキュメントにある通りの手順ですね。。失礼しました。
上の回答にコメント追記しました。

请先登录,再进行评论。

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!