InglésFrancésEspañol

icono de página de OnWorks

perldtrace: en línea en la nube

Ejecute perldtrace en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando perldtrace que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


perldtrace: el soporte de Perl para DTrace

SINOPSIS


# dtrace -Zn 'perl :: subentrada, perl :: sub-return {trace (copyinstr (arg0))}'
dtrace: descripción 'perl :: sub-entrada, perl :: sub-retorno' coincidió con 10 sondas

# perl -E 'sub externo {interno (@_)} sub interno {say shift} externo ("hola")'
¡Hola

(salida dtrace)
FUNCIÓN DE ID DE CPU: NOMBRE
0 75915 Perl_pp_entersub: subentrada BEGIN
0 75915 Perl_pp_entersub: importación de subentrada
0 75922 Perl_pp_leavesub: importación de devolución secundaria
0 75922 Perl_pp_leavesub: sub-retorno BEGIN
0 75915 Perl_pp_entersub: subentrada exterior
0 75915 Perl_pp_entersub: subentrada interior
0 75922 Perl_pp_leavesub: sub-retorno interno
0 75922 Perl_pp_leavesub: sub-retorno externo

DESCRIPCIÓN


DTrace es un marco para el seguimiento integral a nivel de sistema y aplicación. Perl es un
DTrace proveedor, lo que significa que expone varios sondas para instrumentación. Puedes usar estos
junto con sondeos a nivel de kernel, así como sondeos de otros proveedores como
MySQL, para diagnosticar defectos de software, o incluso solo los cuellos de botella de su aplicación.

Perl debe compilarse con la opción "-Dusedtrace" para poder hacer uso de la
sondas. Si bien DTrace tiene como objetivo no tener gastos generales cuando su instrumentación no está activa,
El soporte de Perl en sí mismo no puede mantener esa garantía, por lo que está construido sin sondas DTrace
en la mayoría de los sistemas. Una excepción notable es que Mac OS X incluye un / usr / bin / perl con
Compatibilidad con DTrace habilitada.

HISTORIA


5.10.1
Se agregó la compatibilidad inicial con DTrace de Perl, que proporciona "subentrada" y "sub-retorno".
sondas.

5.14.0
Las sondas de "subentrada" y "sub-retorno" obtienen un cuarto argumento: el nombre del paquete de
la función.

5.16.0
Se añadió la sonda de "cambio de fase".

5.18.0
Se agregaron las sondas "op-entry", "loading-file" y "loaded-file ".

SONDAS


subentrada (SUBNAME, FILE, LINE, PACKAGE)
Rastrea la entrada de cualquier subrutina. Tenga en cuenta que todas las variables se refieren al
subrutina que se está invocando; Actualmente no hay forma de conseguir ningún
información sobre la subrutina llamador desde una acción de DTrace.

: * perl * :: subentrada {
printf ("% s ::% s ingresado en% s línea% d \ n",
copyinstr (arg3), copyinstr (arg0), copyinstr (arg1), arg2);
}

sub-retorno (SUBNAME, FILE, LINE, PACKAGE)
Rastrea la salida de cualquier subrutina. Tenga en cuenta que todas las variables se refieren al
subrutina que está regresando; Actualmente no hay forma de conseguir ningún
información sobre la subrutina llamador desde una acción de DTrace.

: * perl * :: sub-return {
printf ("% s ::% s devuelto en% s línea% d \ n",
copyinstr (arg3), copyinstr (arg0), copyinstr (arg1), arg2);
}

cambio de fase (NEWPHASE, OLDPHASE)
Rastrea cambios en el estado del intérprete de Perl. Puede internalizar esto como rastreo
cambios en la variable "$ {^ GLOBAL_PHASE}" de Perl, especialmente porque los valores para
"NEWPHASE" y "OLDPHASE" son las cadenas que informa "$ {^ GLOBAL_PHASE}".

: * perl * :: cambio de fase {
printf ("La fase cambió de% s a% s \ n",
copyinstr (arg1), copyinstr (arg0));
}

op-entry (OPNAME)
Rastrea la ejecución de cada código de operación en el ciclo de ejecución de Perl. Esta sonda se dispara antes
se ejecuta el código de operación. Cuando el depurador de Perl está habilitado, se activa la sonda DTrace
después de el depurador se engancha (pero aún antes de que se ejecute el código de operación).

: * perl * :: op-entry {
printf ("A punto de ejecutar el código de operación% s \ n", copyinstr (arg0));
}

carga-archivo (NOMBRE DE ARCHIVO)
Se activa cuando Perl está a punto de cargar un archivo individual, ya sea desde "usar", "requerir" o
"hacer". Esta sonda se activa antes de que se lea el archivo del disco. El argumento del nombre de archivo es
convertido a rutas de sistema de archivos locales en lugar de proporcionar nombres de estilo "Módulo :: Nombre".

: * perl *: loading-file {
printf ("A punto de cargar% s \ n", copyinstr (arg0));
}

archivo cargado (NOMBRE DE ARCHIVO)
Se activa cuando Perl ha cargado correctamente un archivo individual, ya sea desde "uso",
"requerir" o "hacer". Esta sonda se activa después de que el archivo se lee del disco y su contenido
evaluado. El argumento del nombre de archivo se convierte a las rutas del sistema de archivos local en lugar de
proporcionando nombres de estilo "Módulo :: Nombre".

: * perl *: archivo cargado {
printf ("Cargado con éxito% s \ n", copyinstr (arg0));
}

EJEMPLOS


Funciones llamadas con más frecuencia
# dtrace -qZn 'subentrada {@ [strjoin (strjoin (copyinstr (arg3), "::"), copyinstr (arg0))] = count ()} END {trunc (@, 10)}'

Clase :: MOP :: Atributo :: ranuras 400
Prueba :: Tiny :: captura 411
Prueba :: Tiny :: prueba 411
Clase :: MOP :: Instancia :: inline_slot_access 451
Class :: MOP :: Class :: Immutable :: Trait ::: alrededor de 472
Clase :: MOP :: Mixin :: AttributeCore :: has_initializer 496
Clase :: MOP :: Método :: Envuelto :: __ ANON__ 544
Clase :: MOP :: Paquete :: _ package_stash 737
Clase :: MOP :: Clase :: inicializar 1128
Clase :: MOP :: get_metaclass_by_name 1204

Llamadas a la función de seguimiento
# dtrace -qFZn 'subentrada, sub-retorno {rastreo (copyinstr (arg0))}'

0 -> Perl_pp_entersub BEGIN
0 <- Perl_pp_leavesub BEGIN
0 -> Perl_pp_entersub BEGIN
0 -> Importación de Perl_pp_entersub
0 <- Importación de Perl_pp_leavesub
0 <- Perl_pp_leavesub BEGIN
0 -> Perl_pp_entersub BEGIN
0 -> Vestido Perl_pp_entersub
0 <- Vestido Perl_pp_leavesub
0 -> Perl_pp_entersub sucio
0 <- Perl_pp_leavesub sucio
0 -> Perl_pp_entersub blanquear
0 <- Perl_pp_leavesub blanquear
0 <- Perl_dounwind BEGIN

Llamadas a funciones durante la limpieza del intérprete
# dtrace -Zn 'cambio de fase / copyinstr (arg0) == "END" / {self-> finalización = 1} subentrada / self-> final / {trace (copyinstr (arg0))}'

FUNCIÓN DE ID DE CPU: NOMBRE
1 77214 Perl_pp_entersub: subentrada END
1 77214 Perl_pp_entersub: subentrada END
1 77214 Perl_pp_entersub: limpieza de subentrada
1 77214 Perl_pp_entersub: subentrada _force_writable
1 77214 Perl_pp_entersub: subentrada _force_writable

Llamadas al sistema en tiempo de compilación
# dtrace -qZn 'cambio de fase / copyinstr (arg0) == "INICIO" / {self-> interesante = 1} cambio de fase / copyinstr (arg0) == "EJECUTAR" / {self-> interesante = 0} syscall ::: / self-> interesante / {@ [probefunc] = count ()} END {trunc (@, 3)} '

busqueda 310
leer 374
estadística64 1056

Funciones de Perl que ejecutan la mayoría de códigos de operación
# dtrace -qZn 'subentrada {self-> fqn = strjoin (copyinstr (arg3), strjoin ("::", copyinstr (arg0)))} op-entry / self-> fqn! = "" / {@ [self-> fqn] = count ()} END {trunc (@, 3)} '

advertencias :: unimport 4589
Exportador :: Pesado :: _ rebuild_cache 5039
Exportador :: import 14578

Referencias


Guía de seguimiento dinámico de DTrace
<http://dtrace.org/guide/preface.html>

DTrace: seguimiento dinámico en Oracle Solaris, Mac OS X y FreeBSD
<http://www.amazon.com/DTrace-Dynamic-Tracing-Solaris-FreeBSD/dp/0132091518/>

Use perldtrace en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad