私はdbstop error
をMatlabで作業するときに多く使用します。時間の間違いで間違いが起きると、のの組み込み[m-file]関数の中にエラーがスローされ、Matlabは実行を停止してファイルを開きます。しかし、ビルトインファイルの内部をデバッグすることは決して役に立たないので、ワークフローが邪魔になります。 Matlabがデバッガ内の組み込みファイルから抜け出すように設定する方法があるかもしれませんが(関数を呼び出すことはありません)、私を関数呼び出しのままにしておきますか?エラーの場合は、dbstop中にMatlabが組み込み関数にステップインしないようにしてください。
7
A
答えて
0
Mathworks社からRody'sの回答やフィードバックに基づいて、これはあなたがこの時点(R2016b)で取得することができます最も近い:
S = dbstack('-completenames');
builtins = ~cellfun('isempty', strfind({S(:).file}, matlabroot()));
stack_depth = find(~builtins, 1, 'first');
hDocument = matlab.desktop.editor.findOpenDocument(S(1).file);
matlab.desktop.editor.openAndGoToLine(S(stack_depth).file,S(stack_depth).line);
hDocument.close();
if stack_depth == 2
dbup();
end
このショートカットはします:
- は、最も近いユーザ関数を開き正しい行に移動します。
- エラーが発生したときに開いた組み込み関数を閉じます。
- エラーがユーザ機能からわずか1レベル離れた場合は、そのワークスペースに切り替えます。
問題はdbup()が1回しか動作しないことです。呼び出し後、スクリプトの実行が停止します。スタック内の任意の場所に切り替える機能はありません。
4
私はきちんとこの問題に取り組むための方法を見つけたことがありませんが、それは一緒に回避策をハックするのはとても簡単です:
は、これらの線に沿って何かを含むスクリプトを作成します。
S = dbstack(); file_paths = cellfun(@which, {S.file}, 'UniformOutput', false); builtins = ~cellfun('isempty', strfind(file_paths, matlabroot())); stack_depth = find(~builtins, 1, 'first'); for ii = 1:stack_depth-1 dbup(); end
あなたに合った場所に保存し、shortcut to it in the MATLAB toolbarを置きます。
この問題が発生すると、ちょっとしたショートカットをクリックするだけで、自動的にデバッグスタックの最初の非組み込み関数に移動します。
+0
これはMathworksが提案したものです。これは、dbup()を呼び出すと直ちにコールバックが実行を停止するため、stack_depth == 2の場合にのみ有効です。私はスタック内の任意の場所に移動する方法を見つけることができないようです。 – Evan
関連する問題
- 1. とらえどころのない私は、次の内部MATLAB関数を読み込むしようとしていますMATLAB組み込み関数
- 2. SonataAdmin/Symfony2がsonata_type_adminを組み込んだ空のオブジェクトを作成しないようにしてください
- 3. 十分なスペースがある場合にのみ、右に表示してください。そうでない場合は下に移動してください。
- 4. 組み込み関数が組み込まれていない並べ替え
- 5. SQL Serverの組み込み関数Stdevpが正しく計算されない
- 6. スクリプトが既に読み込まれているか確認してください。そうでない場合は、非同期にロードしてください。
- 7. 2つのidの組み合わせがテーブルにまだ存在しない場合にのみテーブルに値を挿入してください
- 8. 組み込みMatLab関数を使用しないガウスフィルタの適用
- 9. メモリアラインメントが正しくないためSSE組み込み関数で作業中にセグメンテーションフォールトが発生する
- 10. 。組み込み関数がpython3.5で動作しない
- 11. 組み込み関数/組み込み関数のテスト
- 12. Cordovaを使用していない場合は、デバイスに組み込まれている場合は
- 13. 関数呼び出しのオーバーヘッド - Pythonの組み込み関数が組み込み関数より速いのはなぜですか?
- 14. システム組み込み関数のエラー
- 15. テンプレートを読み込む際にエラーが発生する場合は、「flixel download」を実行してください。
- 16. まだ存在していない場合にのみ、辞書キーに値を追加してください。
- 17. 値がまだ設定されていない場合にのみ、値を設定してください
- 18. ネイティブFlatList/ScrollViewがスクロールしないようにしてください(Androidのみ)
- 19. sprintfの引数を組み合わせてください
- 20. 組み込みドライバを使用している場合、Neo4Jにプロシージャをデプロイ
- 21. TBBとSSE2の組み込み関数を組み合せる
- 22. Python:組み込み関数を使用しないバイナリ・カウント
- 23. ReactJs誰かが既にページ内に入っている場合にページを読み込まないようにしてください
- 24. Mongomapper:組み込み文書が正しく機能しない
- 25. プリロードされていないnose2テストフレームワークで組み込みのモジュールをどのようにアクティブにしますか?
- 26. imadjustガンマパラメータを使用してRGB画像用の組み込みmatlab関数
- 27. Ruby MechanizeがJavascriptの組み込みページを正しく返していない
- 28. 組み込みのMATLAB関数のシンボリック派生をプロット
- 29. 条件との組み合わせの数を計算してください
- 30. OpenBLASは組み込み関数よりも遅いdot_product
+1:これは一般的に*これに取り組む方法を見つけたことはありません...私はいつも私が組み込みの中に入っていることを受け入れるとすぐに 'dbup'と打ちます(そしてそれを繰り返す)関連する文脈に行くために...私はこの迷惑に対する解決策を見つけることも非常に興味があります。 –
コードがエラーを生成するときに手動で 'dbstack'経由でスタックを調べる以外に、私はあなたが求めていることをする方法も見つけていません。これは私がMATLABでしばらく望んでいたものですが、それを行う組み込みの方法はわかりません。 – rayryeng