Guía de seguimiento dinámico de Solaris

Descripciones de sondeo

Las cláusulas del programa D comienzan con una lista de una o más descripciones de sondeo, cada una de ellas con el formato habitual:

proveedor:módulo:función:nombre

Si se omite uno o más campos de la descripción del sondeo, el compilador D interpreta los campos especificados de derecha a izquierda. Por ejemplo, la descripción de sondeo foo:bar coincidiría con una sondeo con la función foo y el nombre bar con independencia del valor del proveedor del sondeo y los campos del módulo. Por lo tanto, la descripción de un sondeo se ve con mayor precisión como un patrón que puede utilizarse para que coincida con uno o más sondeos, en base a sus nombres.

Debe escribir sus descripciones de sondeo D especificando los cuatro delimitadores, de forma que pueda especificar el proveedor que desee en la parte izquierda. Si no especifica el proveedor, puede que obtenga resultados no esperados en caso de que varios proveedores publiquen sondeos bajo el mismo nombre. De forma similar, las futuras versiones de DTrace podrían incluir nuevos proveedores, cuyos sondeos coincidan de forma no intencionada con las descripciones de sondeo especificada parcialmente. Puede especificar un proveedor y aún así coincidir con cualquiera de sus sondeos dejando en blanco cualquiera de los campos módulo, función y nombre. Por ejemplo, la descripción syscall::: puede utilizarse para hacer coincidir los sondeos publicados por el proveedor DTrace syscall.

Las descripciones de sondeos admiten también un patrón que coincida con una sintaxis de coincidencia de patrones similar a la sintaxis de coincidencia de patrón globbing descrita en sh(1). Antes de hacer coincidir un sondeo con una descripción, DTrace explora los campos de descripción en busca de los caracteres *, ? y [. Si uno de estos caracteres aparecen en un campo de descripción de sondeo y no está precedido por un \, el campo se considera un patrón. El patrón de descripción debe coincidir con todo el campo correspondiente de un sondeo determinado. La descripción de sondeo completa debe coincidir en todos los campos, para conseguir una coincidencia satisfactoria y habilitar un sondeo. Un campo de descripción de sondeo que no sea un patrón debe coincidir exactamente con el campo correspondiente del sondeo. Los campos de descripción vacíos coinciden con cualquier sondeo.

Los caracteres especiales de la siguiente tabla se reconocen en los patrones de nombre de los sondeos:

Tabla 4–1 Nombre del sondeo Patrón Caracteres coincidente

Símbolo 

Descripción 

*

Coincide con cualquier cadena, incluyendo la cadena null. 

?

Sustituye a un carácter cualquiera. 

[ ... ]

Coincide con cualquiera de los caracteres encerrados. Un par de caracteres separados por - coinciden con cualquier carácter entre el par, incluidos. Si el primer carácter tras el [ es !, se coincidirá con cualquier carácter no encerrado en el conjunto.

\

Interpreta el siguiente carácter como sí mismo, sin ningún tipo de significado especial. 

Los caracteres de coincidencia de patrón pueden utilizarse en uno o en los cuatro campos de sus descripciones de sondeo. Puede también utilizar patrones para mostrar una lista de los sondeos coincidentes mediante la utilización de los patrones en la línea de comandos con dtrace - l. Por ejemplo, el comando dtrace -l -f kmem_* enumera todos los sondeos DTrace en funciones cuyos nombres comienzan por el prefijo kmem_.

Si desea especificar el mismo predicado y las mismas acciones para más de una descripción de sondeo o patrón de descripción, puede colocar las descripciones en una lista separada por comas. Por ejemplo, el siguiente programa D realizaría un seguimiento de una marca horaria cada vez que se activara un sondeo asociado a una entrada a llamadas de sistema que contengan las palabras "lwp" o "sock":

syscall::*lwp*:entry, syscall::*sock*:entry
{
	trace(timestamp);
}

Una descripción de sondeo podría también especificar un sondeo mediante su entero Id. de sondeo. Por ejemplo, la cláusula:

12345
{
	trace(timestamp);
}

podría utilizarse para habilitar el sondeo Id. 12345, según informa dtrace -l -i 12345. Debe escribir siempre los programas D empleando descripciones de sondeo legibles por el ojo humano. No se garantiza que los enteros Id. de sondeo sean siempre los mismos, tras la carga o descarga de los módulos del núcleo del proveedor DTrace, ni después de reiniciar.