필터 지우기
필터 지우기

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

조회 수: 16 (최근 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!