Trace facility
Previous topic  First topic  Next topic


The Marinas-GUI trace service allows us to send messages to a console to keep track of the places through which the logic of our program is at runtime.
El servicio de trace de Marinas-GUI nos permite enviar mensajes a una consola para poder hacer un seguimiento de los lugares por donde pasa la lógica de nuestro programa en tiempo de ejecucion.

The console is automatically activated at the first trace command captured.
La consola se activa automaticamente ante el primer comando de trace capturado.

In addition, the entire contents of the trace is being written to a file whose name is indicated on the same console.
En adición, todo el contenido del trace se va grabando en un archivo cuyo nombre es indicado en la misma consola.

Marinas-IDE has two ways to tell which of the sources of our system will use the TRACE service.
Marinas-IDE posee dos formas de indicarle cual de los sources de nuestro sistema van a utilizar el servicio de TRACE.

1.- With the option "Enable/Disable Trace all Modules" of Debug/Trace menu
1.- Mediante la opcion "Enable/Disable Trace all Modules" del menu Debug/Trace

2.- Using the TRACE button in Sources tab
2.- Mediante el boton TRACE de la pestaña Sources

The difference is that the first option toggles the Trace for all modules of our program, while the second option works only on the marked source, in this way, we can enable or disable Trace for a particular module.
La diferencia radica en que la primera opcion activa o desactiva el Trace para todos los modulos de nuestro programa, en cambio la segunda opcion trabaja sobre el source posicionado unicamente, de este modo, podemos activar o desactivar el Trace para un modulo en particular.

When at least one module with trace enabled exists, left tab on IDE changes its color to alert as that our program is being compiled with trace.
Cuando hay por lo menos un modulo con trace activado se cambia el color del tab de la izquierda del IDE para que estemos alertas que nuestro programa esta siendo compilado con trace.

When a program that has trace commands is compiled without trace, this commands disappear at precompilation therefore will not produce overhead in our program. Obviously, when the trace is activated, our program will be slower, but it is only for the purpose of malfunctions detecting
Cuando compilamos sin trace un programa que posee los comando del trace, estos desaparecen en tiempo de precompilacion por lo tanto no produciran overhead en nuestro programa. Obviamente que cuando el trace esta activado, nuestro programa va a ser mas lento, pero es solamente a los efectos de detectar malos funcionamientos





Once the trace is activated we have 3 commands that we can use:

Una vez activado el trace tenemos 3 comandos que podemos utilizar:

  • ? <cString> [ , <cString> ... , <cString> ] Display a line on console
  • ?S <cString> [ , <cString> ... , <cString> ] Display a line plus stack of our program
  • inkey() Temporarily stops the execution of our program to inspect the trace. You can reactivate the execution with the GO button on trace console.
  • .

  • ? <cString> [ , <cString> ... , <cString> ] Displaya una linea en la consola
  • ?S <cString> [ , <cString> ... , <cString> ] Displaya una linea mas el agregado del STACK de nuestro programa
  • inkey() Detiene temporariamente la ejecucion de nuestro programa para poder inspeccionar el trace. Se reactiva con el botón GO de la consola de trace.
  • .

    Where <cString> is the text that you want to display on Harbour format, i.e. the same syntax as the same command in Harbour console mode.
    Donde <cString> es el texto que se desea displayar en formato Harbour, es decir, la misma sintaxis que el mismo comando en Harbour modo consola.

    Examples:
    Ejemplos:

    ? "Test line"

    ? "Test line #: " + str( nCont )

    ? "Test line #:" , nCont

    ?S "Test line #:" , nCont , "Stack:"



    Source of the image above:
    Source de la imagen anterior:

    #include "marinas-gui.ch"

    Function main()

       CREATE WINDOW Sample
          ROW 0
          COL 0
          WIDTH 400
          HEIGHT 200
          CAPTION "Marinas-GUI Sample"
          MAIN .T.

          ? "Step 1"

          CREATE LABEL Label1
             ROW 40
             COL 125
             WIDTH 200
             VALUE "Basic Marinas-GUI Sample"
          END LABEL

          ? "Label created!!!"

          CREATE BUTTON Button1
             ROW 100
             COL 100
             WIDTH 200
             CAPTION "Test"
             ? "Caption of Button has set as: " + mg_Get( "Sample" , "Button1" , "caption" )
             ? "Row of Button:" , mg_Get( "Sample" , "Button1" , "row" )
             ONCLICK myTest()
          END BUTTON

       END WINDOW

       mg_Do( "Sample" , "center" )
       mg_Do( "Sample" , "activate" )

    Return .T.

    Function myTest()
       LOCAL nInx
       For nInx := 1 to 3
          ? "Into myTest" , nInx , "Seconds:" , seconds()
       next
    Return NIL




    Marinas-GUI Version 03.06 and
    Marinas-IDE Version 05.06 and
    LEX Files Version 02.06


    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    last update: April 27
    2017
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




    A Harbour/QT framework to make multiplatform programs

    (©) Copyright 2009-2017 by Fernando Santolin (aka CarozoDeQuilmes)
    CarozoDeQuilmes@gmail.com

    2009-2017 Beta tester and full English translator: Bruno Luciani
    Bruno.Luciani@gmail.com

    2014-2015 Final English corrector: David Worboys
    DavidWorboys@hotmail.com

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    www.marinas-gui.org


    www.marinas-gui.org  

    Previous topic  First topic  Next topic