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

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

回答 (3 件)

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

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

サインインしてコメントする。


Atsushi Ueno
Atsushi Ueno 2023 年 5 月 19 日
編集済み: Atsushi Ueno 2023 年 5 月 19 日
下記スクリプトで上手くいきました。下記は 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 件のコメント
mayu
mayu 2023 年 5 月 24 日
ご返信が遅くなってしまい申し訳ございません、
スクリプトの作成までしていただきありがとうございますm(__)m
mファイルを作成してやったことがないのでちゃんと理解できてないのですが、範囲指定して使えるの便利なので、また活用させていただければと思います、
お忙しい中ありがとうございます❕

サインインしてコメントする。

カテゴリ

Help Center および File Exchangeデバッグと解析 についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!