FoxPro/Visual FoxPro - Ayuda con Debugger

 
Vista:
sin imagen de perfil

Ayuda con Debugger

Publicado por Juan (71 intervenciones) el 17/03/2015 16:58:01
Buenas tardes.

Llevo años trabajando con Visual FoxPro y siempre he utilizado el DEBUGGER añadiendo un punto de interrupción a mano SET STEP ON. Alguien me puede decir si se puede hacer que se pare el programa cuando una variable tenga un determinado valor, etc...

He probado en la opción puntos de interrupción pero no logro hacerlo. También me ayudaría mucho si hubiera algún tipo de manual donde te explique todo lo que se puede hacer desde el DEBUGGER.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ayuda con Debugger

Publicado por Fidel José (558 intervenciones) el 18/03/2015 15:10:04
Si estás en un formulario o una clase, puedes reemplazar tu variable por una propiedad. Al crear la propiedad, le activas según te convenga Método Access o Método Assign.

Por ejemplo, si creamos una propiedad llamada "MiValor" con Método assign, se creará automáticamente un método denominado "MiValor_assign" en el form o clase. El método _Assign tiene un parámetro que es el valor que va a tomar la propiedad. Ahí tienes que poner tu código:

1) creamos una propiedad "MiValor" con Método Assign
2) creamos una propiedad "Testigo" y le asignamos el valor esperado
3) En el método "miValor_assign" ponemos
LPARAMETERS vNewVal && default
IF vNewVal = this.Testigo
Messagebox("MiValor = Testigo")
ENDIF

El método Access no tiene parámetros.

Assign ocurre cada vez que le asignas un valor (no importa si es el mismo) a la propiedad.
Thisform.MiValor= (lo que sea)

Access ocurre cada vez que utilizas la propiedad en el form o clase
lnVariable = thisform.Mivalor + this.value

Puedes utilizar ambos métodos para la misma propiedad.
Para tener una idea de cuándo funciona una y otra, agrega en ambos métodos lo siguiente:
Messagebox(Program())

Otra cosa.
Además del Debug, te puedes ayudar bastante con SET COVERAGE TO archivolog. Esto no te ayudará con el caso puntual que planteas, pero es bueno tenerlo a mano para analizar sobre todo las demoras en la ejecución de código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con Debugger

Publicado por Juan (71 intervenciones) el 18/03/2015 15:49:46
Muchas gracias.

Qué es lo que hace SET COVERAGE TO archivolog, exactamente? Puedes poner un ejemplo?

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ayuda con Debugger

Publicado por Fidel José (558 intervenciones) el 18/03/2015 15:59:51
Crea un archivo tipo .log
No te dice nada del código, pero podés ver la cantidad de veces que repite la misma línea y analizar los tiempos de demora. Es muy importante en la depuración de rutinas. Allí donde vemos que la demora es importante, tal vez merezca alguna modificación / mejora.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
delay      ,,Punto de ejecución      ,linea,ubicación del archivo
   0.007771,,zensayo7.cmdgral23.click,47,c:\theodore\forms\zensayo7.sct,1
   0.000112,,zensayo7.cmdgral23.click,48,c:\theodore\forms\zensayo7.sct,1
   0.000059,,zensayo7.cmdgral23.click,49,c:\theodore\forms\zensayo7.sct,1
   0.000058,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000052,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000057,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000070,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000063,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000139,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000034,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000027,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000030,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000027,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000033,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000033,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000031,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000027,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
   0.000030,,zensayo7.cmdgral23.click,50,c:\theodore\forms\zensayo7.sct,1
   0.000027,,zensayo7.cmdgral23.click,51,c:\theodore\forms\zensayo7.sct,1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar