アプリケーションのデバッグ中にTStringListの内容全体を表示したいとします。 代わりにポインタを取得するだけです。 Flistはアドレスだけを表示しています。TStringListの内容をデバッガに表示するにはどうすればよいですか?
答えて
私はD2010を持っているので、私はビジュアライザーを使用します。私は、文字列の配列を返すCArrayという関数を使用していました。ウォッチウィンドウにCArray(MyStringList)を追加すると、文字列リストの内容を調べることができます。私はVB6コードを書くのに慣れていましたが、役に立つタイプに変換するためのさまざまな 'C'関数が好きでした。文字列リストのCArrayとClientDataSetフィールドのCArrayは、ほとんどの場合デバッグに役立ちました。 BDS MMVIを使用して - 私以来
function CArray(List: TStrings): TStrArray; Overload;
var i,
iCount: Integer;
begin
iCount := List.Count;
SetLength(Result, iCount);
for i := 0 to Pred(iCount) do Result[i] := List[i];
end;
新しいビジュアライザー機能は素晴らしいです(独自のカスタムビジュアライザーを書くことができます)。しかし、IDEに同梱されているデフォルトの 'TStrings'ビジュアライザーには、TStringsのコンテンツにいくつかのサイズ制限があります。 –
Delphi 2010以降を使用している場合、デバッガではdebug visualizersを使用してこれを実行できます。
古いバージョンの場合、[ウォッチ]ウィンドウまたは[OutputDebugString]を使用してTextプロパティの内容をダンプできますが、読みにくいです。リストの要素ごとに時計を設定することができますが、これは非常に短いリストの場合にのみ実用的です。
おそらく、CodeSiteまたはSmartInspectのような外部ロギングアプリケーションを使用して、TStringListの内容を1回の呼び出しでダンプできるようにします。
Textプロパティを検査します。これは、文字列リストの連結バージョンです。
、その種の問題のための「超賢いスマート」メソッドを使用して - 私は、私は大規模なXML文書のためにそれを使用。コンテキストファイルエディタを起動します(途中で自由にテキストエディタを書くことができます)。コンテキストはファイルの変更を監視でき、私のXMLファイルで何が起こっているのかを見ることができるので、デバッガウィンドウでは単にFList.SaveToFile( 'contents.txt')を実行します。
「巧妙な」冗談には申し訳ありませんが、それは私のために働きます。
平和
+1あなたは最初に答える:)私は[ConTEXT](http://www.contexteditor.org/)を使いました。なぜなら、それは自由で友好的ですが、Delphi IDEでもファイルを開くことができるからです。 – ThinkJet
私の2セント:
あなたは表現list_instance_variable.SaveToFile('temp_file_name.txt')
を評価し、任意のエディタでファイルの内容を調べることができます。
これを行うには、コード内の任意の場所でこの関数を使用し、最適化をオフにする必要があります。それ以外の場合、オブジェクトコードSaveToFile
はリンカーによって削除されます。
- 1. neo4jのノードに表示される内容を変更するにはどうすればよいですか?
- 2. Clionのデバッガでは、int配列の内容全体をどのように表示するのですか
- 3. Java Swingに表示される内容を変更するにはどうすればよいですか?
- 4. ユーザのクリップボードの内容をUILabelに表示するにはどうすればよいですか?
- 5. GUIの内容を特定の方法で表示するにはどうすればよいですか? (Java)
- 6. Matlabのワークスペース変数の内容をすべて表示するにはどうすればよいですか?
- 7. irbが返す/表示する内容を決定するにはどうすればよいですか?
- 8. モデルデータの内容をhtmlファイルで表示するにはどうすればよいですか?
- 9. Eclipseでstd :: mapの内容を表示するにはどうすればよいですか?
- 10. PowerShellでリモートログファイルの内容を表示するにはどうすればよいですか?
- 11. ディレクトリの内容をすべて一覧表示するにはどうすればよいですか?
- 12. JSONValueを使用してメソッドの内容を表示するにはどうすればよいですか?
- 13. HTML要素にデバッガが表示する内容が表示されない
- 14. Webstormデバッガに表示されるフレーム数を増やすにはどうすればよいですか?
- 15. OS XでQt CreatorのデバッガにC++ベクタの内容を表示させるにはどうすればよいですか?
- 16. jekyllのホームページにabout.mdの内容を表示するにはどうすればいいですか?
- 17. UITableViewCellの内容をメッセージボックスに表示するにはどうすればいいですか?
- 18. Git - コミットの各ファイルのファイル内容を表示するにはどうすればいいですか?
- 19. htmlとphpの内容を表示するにはどうすればいいですか
- 20. /index.phpの内容を表示するにはどうすればいいですか?
- 21. テンプレートをレイアウトテンプレート内に表示せずに表示するにはどうすればよいですか?
- 22. BIツールはモバイルで100GBの大容量データを表示するにはどうすればよいですか?
- 23. iphone - iPhoneの内蔵ラベルのようにラベルを表示するにはどうすればよいですか?
- 24. どのようにアンドロイドのmysqlテーブルから内容を表示するには?
- 25. 特定のフォルダの内容がゲストに表示されないようにするにはどうすればよいですか?
- 26. PostMessage()の内容はどのように表示されますか?
- 27. コアデータの内容を知るにはどうすればいいですか
- 28. 実行時に.mファイルの内容全体をMATLABが表示しないようにするにはどうすればよいですか?
- 29. UIWebView内に表示されるPDFのテキストを選択するにはどうすればよいですか?
- 30. Python-毎回ファイルパスを表示せずにos.walkファイルの内容を表示するにはどうすればよいですか?
デバッグモードでは、式(FList.Text)を評価してコンテンツ全体を表示することができます。 – mjn
しかし、IIRC(現時点ではチェックできません)は、デバッグ中にタイプの関数呼び出しを有効にした場合のみです。 –
@Rudy:これは腕時計にのみ当てはまります。 「評価および変更」ウインドウ機能(およびセッターなどの手順)では、常に呼び出しが可能である。 – dummzeuch