マトラボコードのブレークポイントについて

4 views (last 30 days)
mayu
mayu on 19 May 2023
Commented: mayu on 24 May 2023
マトラボのコードで、ブレイクポイントを全クリアはできるのですが、全行に貼る方法はないでしょうか。
または、ここからここまで、と指定したらその間全部貼れるとかでもいいのですが。。。
ある程度経験のある人の場合は大体この辺とか予想がつくんだろうと思いますが、どこを通ってエラーになってるか分からないので、とりあえず全部に貼ってみたいのですが、そのようなメニュー探しても見当たらないので質問させていただきました。
手動でポチポチするしかないでしょうか。

Answers (3)

Kojiro Saito
Kojiro Saito on 21 May 2023
指定した範囲に全てブレークポイントを貼る質問への直接的な回答ではないのですが、デバッグのコツとして「ステップ」とステップイン」があります。
ブレークポイントを貼った行で実行が一時停止されますが、その後に「ステップ」をクリックすると次の1行を実行します。また、「ステップイン」をクリックすると、そこで呼び出される関数のスクリプトを開いてデバッガーが移動します。
どこでエラーになっているか分かりづらいときに、ステップで1行ずつ実行、ステップインで呼び出される中の関数で1行ずつ実行することで、どこでException (例外処理)が起きてエラーになっているかが分かるようになります。

Kohei Ikeda
Kohei Ikeda on 19 May 2023
Edited: Kohei Ikeda on 19 May 2023
全ての行にブレークポイントを貼る方法は存じ上げないのですが、
エラーブレークポイントと呼ばれるエラーが起きたらスクリプトの実行を一時停止する方法があります。
  1. [実行]の下にある▼をクリックします。
2. オプションが表示されるので、[エラーで一時停止]を選択します。
この設定をした後にスクリプトを実行すると、エラーが起きている箇所で一時停止するので、どこでエラーが起きているのか特定しやすくなると思います。
  1 Comment
mayu
mayu on 23 May 2023
ご返信遅くなってしまい申し訳ございません。ご教示いただき、ありがとうございます。
App Designerで作成しているからなのか、添付いただいた画像と私の画面が少し異なっておりまして💦
貼り付けいただいたような、「エラーの取り扱い」というメニューが見当たりませんでした。
ただ、エラーが発生するとそこでストップしてマークが出ているので、これと同様の動作になりますでしょうか。。。
エラーの箇所はこれで一応わかるのですが、どのように通ってここで止まってるのか知りたいなと思っておりまして・・・
普通はそんなところはあまりみないでしょうかね💦

Sign in to comment.


Atsushi Ueno
Atsushi Ueno on 19 May 2023
Edited: Atsushi Ueno on 19 May 2023
下記スクリプトで上手くいきました。下記は m ファイル (Untitled.m) に対するブレークポイント設定なので、必要に応じて対象ファイル名を変更してください。for 文で出来る事なら応用も効きます (下記の様に範囲を指定、2行おきにBP設定など) 。
ところで全てのステップにブレークポイントを設定すると、ブレークポイント無しでステップアウトを連続実行するのと同じ事になりますよ。
start_line = 5; % ブレークポイント設定この行から
end_line = 20; % ブレークポイント設定この行まで
for r = start_line:1:end_line
eval(['dbstop in Untitled at ' num2str(r)]); % dbstop命令でブレークポイントを設定
end
dbstatus % すべてのブレークポイントをリストアップしてみる
  1 Comment
mayu
mayu on 24 May 2023
ご返信が遅くなってしまい申し訳ございません、
スクリプトの作成までしていただきありがとうございますm(__)m
mファイルを作成してやったことがないのでちゃんと理解できてないのですが、範囲指定して使えるの便利なので、また活用させていただければと思います、
お忙しい中ありがとうございます❕

Sign in to comment.

Categories

Find more on デバッグと解析 in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!