マトラボコードのブレークポイントについて
2 views (last 30 days)
Show older comments
マトラボのコードで、ブレイクポイントを全クリアはできるのですが、全行に貼る方法はないでしょうか。
または、ここからここまで、と指定したらその間全部貼れるとかでもいいのですが。。。
ある程度経験のある人の場合は大体この辺とか予想がつくんだろうと思いますが、どこを通ってエラーになってるか分からないので、とりあえず全部に貼ってみたいのですが、そのようなメニュー探しても見当たらないので質問させていただきました。
手動でポチポチするしかないでしょうか。
0 Comments
Answers (3)
Kojiro Saito
on 21 May 2023
指定した範囲に全てブレークポイントを貼る質問への直接的な回答ではないのですが、デバッグのコツとして「ステップ」とステップイン」があります。
ブレークポイントを貼った行で実行が一時停止されますが、その後に「ステップ」をクリックすると次の1行を実行します。また、「ステップイン」をクリックすると、そこで呼び出される関数のスクリプトを開いてデバッガーが移動します。
どこでエラーになっているか分かりづらいときに、ステップで1行ずつ実行、ステップインで呼び出される中の関数で1行ずつ実行することで、どこでException (例外処理)が起きてエラーになっているかが分かるようになります。
0 Comments
Kohei Ikeda
on 19 May 2023
Edited: Kohei Ikeda
on 19 May 2023
全ての行にブレークポイントを貼る方法は存じ上げないのですが、
エラーブレークポイントと呼ばれるエラーが起きたらスクリプトの実行を一時停止する方法があります。
- [実行]の下にある▼をクリックします。
2. オプションが表示されるので、[エラーで一時停止]を選択します。
この設定をした後にスクリプトを実行すると、エラーが起きている箇所で一時停止するので、どこでエラーが起きているのか特定しやすくなると思います。
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 % すべてのブレークポイントをリストアップしてみる
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!