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

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

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!