Guía de seguimiento dinámico de Solaris

Adición de sondeos al código de aplicación

Ahora que ha definido los sondeos en un archivo .d, debe aumentar el código fuente para indicar las ubicaciones que deben activar los sondeos. Considere el siguiente ejemplo de código fuente de aplicación en C:

void
main_look(void)
{
	...
	query = wait_for_new_query();
	process_query(query)
	...
}

Para agregar un sitio de sondeo, agregue una referencia a la macro DTRACE_PROBE() definida en <sys/sdt.h>, tal y como se muestra en el siguiente ejemplo:

#include <sys/sdt.h>
...

void
main_look(void)
{
	...
	query = wait_for_new_query();
	DTRACE_PROBE2(myserv, query__receive, query->clientname, query->msg);
	process_query(query)
	...
}

El sufijo 2 en el nombre de la macro DTRACE_PROBE2 hace referencia al número de argumentos que se pasan al sondeo. Los dos primeros argumentos de la macro del sondeo son el nombre del proveedor y el nombre del sondeo y deben corresponderse con las definiciones de sondeo y de proveedor D. Los argumentos de macro restantes son los asignados a las variables de DTrace arg0..9 al activarse los sondeos. El código fuente de la aplicación puede contener varias referencia al mismo nombre de sondeo y proveedor. Si el código fuente dispone de varias referencias al mismo sondeo, cualquiera de las referencias de la macro hará que el sondeo se active.