どのようなデバッガのみ変数には?
-
21-09-2019 - |
質問
私は一般的に入れる変数値のみ使用後の課題が出てきます。これをデバッグより便利に、後は、んけホバーの値を線での後に使用します。
例えば、このコードになろうだけで価値のGetFoo():
return GetFoo();
このコードは:
var foo = GetFoo();
return foo; // your hover-foo is great
この匂いもの YAGNI風, としての 機能 の foo's課題ん以外に使用されることで誰かのニーズのデバッグの価値は、 く必要があります。.ばんは 単に予想され デバッグセッションでは、最初のコードスニペットの上にコードをより簡単になります。
ついてはどのように捉えているコードを記述する簡便にデバッガを使用しますか?
解決
私は他のデバッガを知りませんが、Visual Studio統合デバッガは、「自動車」ウィンドウ内の関数から返されたものを報告します。あなたがreturn文をステップオーバー後、戻り値が返されたどのような値の値が「[関数名]が返された」として表示されます。
GDBにも同じ機能をサポートしています。 「仕上げ」コマンドは、現在の関数の残りの部分を実行し、戻り値を出力します。
他のほとんどのデバッガはががこの機能をサポートしていませんでした場合は、これは非常に便利な機能であること、私は驚かれることと思います。
の、より一般的な「問題」については、「デバッガ変数だけ、」彼らは本当にデバッガ専用ですか?私はよく名前の一時変数の使用が大幅にだけでなく、コードの可読性を向上させることができることを考える傾向があります。
他のヒント
もうひとつの可能性は学習に十分なアセンブラプログラミングできるの読み込みコードをコンパイラを発生します。このスキルできるのですが価値が開催されています(登録、メモリ)の値でなく店舗で可変となります。
このスキルは非常に有る場合には、あなたの必要なデバッグに最適な実行形式にまとめたものです。バージョンのオプティマイザを生成できるコードは大きく異なりますのでどを書いたような象徴的なデバッグではない。
は、Visual Studioデバッガで中間変数を必要としないもう一つの理由は、あなたがウォッチウィンドウとイミディエイトウィンドウで関数を評価することができるということです。ウォッチウィンドウの場合は、単にあなたが評価したい文を強調表示し、ウィンドウにドラッグします。
私はそれを気にせ価値はないと主張するだろう。典型的な場合には、実行時のオーバーヘッドがないことを考えると、ナットを行きます。私は複数の単純文に複雑な文を破壊するには、通常、読みやすさを向上させると思います。
私ははを割り当てを除外します。あなたがその変数を見てみたいと、コードのそのビットであることが起こることはありません場合は、不必要に自分のコードを雑然としていません。あなたが必要渡って実行すると、(それは些細なのエキス変数のリファクタリングをする必要があります)に入れて。そして、あなたは(変数のをインライン)それを取り除く、そのデバッグセッションで行われているとき。あなたはそんなにデバッグ自分自身を見つける場合は - と、その特定の時点でそんなに - あなたが前後にリファクタリングの疲れていること、そして必要性を回避する方法を考えます。多分より多くのユニットテストは役立つだろう。