-
25-09-2019 - |
質問
私は長時間のデdev、過去に使っている第三者ツールにログインおよびデバッグを開発(スマート検査)しかし今では私はアイXEかしていきたいと利用のIDEのためのデバッグしやすくなります。
私の質問は、さらに機能など
procedure MyFunction;
var
str : string;
begin
str := 'Foo';
//Debug, show value of str?
str := AnotherFunction(str);
//Debug, show value of str?
end;
かのデバッグおよび値を取得しますstrのなかのような showmessage(str);
がある場合は映像のどこかに(又は)そしてたいと思っています。
があるので、見出力の値を変数です。
解決
さて、デルファイXEは、コードサイトのログが付属していますが、私はあなたがデバッガ自体の話をしている感覚を得る。
あなたはルーチンにブレークポイントを配置する場合、それはそれに当たったとき、は、デバッガーに解除されます。そこから、あなたはローカル変数ペインとIDEの左側に沿って時計のウィンドウを持っています。ローカル変数はすべて地元の人々の値が表示され、時計はあなたが、その値、それはの追跡します式を設定できます。
また、時計に似た何かを得ることができますが、(特に、オブジェクトなどの構造化型のため)、より詳細な情報を持つ(Alt-F5
)を点検することもできます。また、評価/変更(Ctrl-F7
)は、あなたがそれらを式で入力し、評価することができます。それは点検して詳細にかなりのようではないが、それはあなたに多くの柔軟性を提供します。
、あなたははるかに簡単にデバッグを見つけることができます。
他のヒント
を利用する場合は、IDEでデバッガを読むだけでは理解できないの
- を入れてどこかブレークポイント
- 右クリックしbreakpointr円を選択"ブレークポイント特性..."
- プレス"先端"ボタンよりオプション
- チェックを外"休憩"にチェックボックス
- その利用"ログメッセージ"および"<エバール>の表現"の編集ボックス入り微量値
このようなメッセージができるものと考えられる"イベントログ"デバッガ表示されなくなります。右クリックし欄を選択"Properties"があります。ことができるフィルタ"メッセージ")/hilight("カラー")は、微量のメッセージとバ.
1)あなたは、デバッグウィンドウに出力文字列に関数をOutputDebugStringを使用することができます。
2)あなたは、コードサイトExpressを使用することができます。私は、コードサイト使用するための出発点として CodeRage 5 のからビデオをお勧めしますP>
他の回答がすべて正しいます。
(DA-ソフトによって答えと同じ)私の個人的な好みの技術は、私がログインしたい値を含む、イベントログにメッセージを記録し、ブレークポイントを作成することで、実際に「ブレイク」しない(です、実行)を使用すると、Runアイコンを押すことなく続けています。次に、コードの行に到達するたびに、私は私のメッセージ、およびログで私の値を取得します。私は戻って歴史を読むだけでなく、現在の値を見ることができるので、私は単に、デバッガのウォッチウィンドウを使用するよりも、これはより便利ます。
デルファイXEは、コードサイトが含まれているため、しかし、あなたははるかにブレークポイントでの式の評価があなたのために何をするかを越えて行くことができます。コードのサイトは、しかし、あなたには、いくつかのログを追加するようにコードを変更する必要があります。しかし、それはメッセージボックスよりもはるかに優れています。
また、出力にのOutputDebugString(PChar型(S))デバッガに任意の文字列を使用することができます。これはあなたが望むものは何でも含めることができるので、それはデバッグに非常に良い方法ですが、エンドユーザーにコンテンツを表示しません。
私のアプリケーションの多くでは、私は(それが唯一の最後の500かそこらのラインを保ち、である)円形であり、特殊なトレースバッファを、持っています。私は問題を見たとき、これまでだけではなく、私は、スタックトレースバックを得るか、私もそのメモリ内のトレースログの保存、私はちょうど私の問題の前に何が起こっていたかについて、いくつかの歴史を持っているので。
また、ログイン4デルファイのプロジェクトをチェックアウトすることができます。
私は、デバッガのヒントを好みます。デバッガに破壊した後、あなたのコード内の任意の場所に「STR」にマウスを移動し、あなたは現在の値が表示されます。また、あなたは、マウスで、いくつかの文を強調表示し、それを評価することができます。例えばハイライト「AnotherFunction(文字列)」とそれの上にマウスを置きます。
何も間違っているが、私はちょうどこれらの便利な機能を追加したい。
procedure DebugString ( const s : string ) ; overload ;
begin
{$IFDEF DEBUG}
OutputDebugString ( PChar ( s ) ) ;
{$ENDIF}
end ;
procedure DebugString ( const s : string ; args : array of const ) ; overload ;
begin
{$IFDEF DEBUG}
OutputDebugString ( PChar ( Format ( s , args ) ) ) ;
{$ENDIF}
end ;