Quiero mostrar todo el contenido de una TStringList al depurar la aplicación. En vez de eso solo obtengo punteros. The Flist solo muestra la dirección.¿Cómo puedo mostrar el contenido de una TStringList en el depurador?
Respuesta
Uso los visualizadores ahora que tengo D2010. Solía usar una función que llamé CArray que devolvería una matriz de cadenas. Si agregué CArray (MyStringList) a la ventana del reloj, podría examinar el contenido de la lista de cadenas. Solía ser empleado para escribir el código VB6 y me gustaban las diversas funciones 'C' para convertir a un tipo útil. CArray para cadenas de caracteres y CArray para campos ClientDataset fueron en su mayoría útiles para la depuración.
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;
La nueva característica de visualizadores es agradable (¡aún más agradable es que puedes escribir tus propios visualizadores personalizados!). Sin embargo, el visualizador 'TStrings' predeterminado que se envía con el IDE tiene algunas limitaciones de tamaño en el contenido de TStrings. –
Si está utilizando Delphi 2010 o posterior, el depurador lo permite utilizando debug visualizers.
Para versiones anteriores, puede volcar el contenido de la propiedad Texto en la ventana Inspección o usar OutputDebugString, pero eso es difícil de leer. Puede configurar relojes para cada elemento de la lista, pero eso solo es práctico para listas muy cortas.
Probablemente usaría una aplicación de registro externo como CodeSite o SmartInspect que le permite volcar el contenido de un TStringList en una sola llamada.
Inspeccionar la propiedad de texto. Es la versión concatenada de la lista de cadenas.
Dado que estoy usando BDS MMVI, estoy usando un método de "ultra inteligente inteligente" para ese tipo tema, lo uso para grandes documentos XML. Comienzo editor de archivos de contexto (editor de texto libre muy capaz escrito en Delphi por cierto). En la ventana del depurador basta con hacer un FList.SaveToFile ('contents.txt'), ya que el contexto puede monitorear las modificaciones de archivos. Puedo ver lo que sucede en mis archivos xml.
Disculpa la broma "inteligente" pero funciona para mí.
Paz
+1 Responde primero :) También uso [ConTEXT] (http://www.contexteditor.org/) porque es gratis y amigable, pero el archivo se puede abrir incluso en Delphi IDE. – ThinkJet
Mis dos centavos:
Se puede evaluar la expresión list_instance_variable.SaveToFile('temp_file_name.txt')
y luego examinar el contenido del archivo en cualquier editor.
Para hacer esto, debe utilizar esta función en cualquier parte del código y desactivar la optimización (al menos en Delphi 7), de lo contrario, el código del objeto SaveToFile
será eliminado por el vinculador.
- 1. ¿Cómo mostrar el contenido de JComboBox en el centro?
- 2. Mostrar el contenido del portapapeles de Windows
- 3. inspeccionar el contenido de una matriz en el depurador de Xcode
- 4. django mostrar el contenido de manytomanyfield
- 5. ¿Cómo puedo saber si estoy en el depurador en Android?
- 6. Cómo mostrar el contenido html en UIWebView IOS
- 7. ¿Cómo mostrar el depurador Xcode en una ventana separada de Xcode?
- 8. ¿Cómo mostrar una matriz dinámicamente asignada en el depurador de Visual Studio?
- 9. ¿Cómo puedo mostrar el contenido de un archivo en un estado específico de un git repo?
- 10. PHP: ¿Cómo puedo mostrar el contenido de un archivo de texto en mi página?
- 11. cómo mostrar el contenido Hindi en windows phone7?
- 12. ¿Cómo puedo mostrar una UIView en el paisaje?
- 13. ¿Cómo puedo ver el contenido de una solicitud de MultipartForm?
- 14. ¿Cómo puedo analizar el contenido dinámico de una página web?
- 15. Cómo comprobar longitud de TStringList en Delphi
- 16. Cómo mostrar el valor de una variable en la pantalla
- 17. Depurador XCode: mostrar cadenas largas
- 18. Eliminar cadenas de TStringList
- 19. ¿Cómo puedo examinar el contenido de una sección de datos de un archivo ELF en Linux?
- 20. Sharepoint: ¿Cómo puedo filtrar una vista de biblioteca de documentos para mostrar el contenido de una subcarpeta?
- 21. ¿Cómo retroceder en el depurador de Eclipse?
- 22. Entrando en el depurador en el iPhone
- 23. ¿Cómo usar el depurador OcaIDE en Eclipse?
- 24. Mostrar contenido en el título al desbordamiento de texto
- 25. ¿Cómo puedo realizar una solicitud GET sin descargar el contenido?
- 26. Cómo mostrar el contenido del directorio del FTP remoto, recursivamente
- 27. ¿Cómo puedo ver los detalles de una excepción en el depurador de Python?
- 28. Ignorando el código fuente en el depurador
- 29. Mostrar el contenido de un contenedor vectorial en C++
- 30. ¿Cómo enumerar el contenido de una carpeta .zip en C#?
En el modo de depuración, es posible evaluar una expresión (FList.Text) para ver todo el contenido. – mjn
Pero IIRC (no se puede verificar ahora mismo) solo si habilita llamadas de funciones para tipos durante la depuración. –
@Rudy: esto solo es cierto para los relojes. En la función de ventana "Evaluar y modificar" (y el procedimiento, por ejemplo, el ajustador) las llamadas siempre son posibles. – dummzeuch