strace

Software captura de pantalla:
strace
Detalles de software:
Versión: 4.19 Actualizado
Fecha de carga: 23 Nov 17
Licencia: Libre
Popularidad: 23

Rating: 5.0/5 (Total Votes: 1)

strace es un software de código abierto y de libre distribución diseñado para desarrolladores y administradores de sistemas, que proporciona un sistema de rastreo de llamadas implementado en C y diseñado para ejecutarse exclusivamente bajo los sistemas operativos GNU / Linux.

El programa es una herramienta de depuración, de instrucción y de diagnóstico muy útil que puede reunir todas las llamadas al sistema generadas por un programa o proceso e imprimir un seguimiento. Es un programa de línea de comandos que solo se puede usar desde un entorno de consola o mediante una aplicación de emulador de terminal.

La herramienta puede ser utilizada por los diagnosticadores, los solucionadores de problemas y los administradores de sistemas que desean una solución invaluable para resolver problemas con programas de código cerrado. Está escrito por Dmitry V. Levin, Roland McGrath y Wichert Akkerman.


Opciones de línea de comando

Al igual que cualquier otro software de línea de comandos, strace ofrece una amplia variedad de opciones de línea de comandos que permiten al usuario usar fácilmente todas sus funciones y características para realizar sus tareas. Todas sus opciones de línea de comandos se pueden ver de un vistazo ejecutando la & lsquo; strace --help & rsquo; comando.

Entre las opciones de línea de comando más interesantes, podemos mencionar soporte para contar tiempos, llamadas y errores para cada syscall, soporte para resumir la latencia de syscall, soporte para rastrear accesos a una ruta determinada, soporte para habilitar salida de depuración a stderr, así como soporte para ejecutar un proceso de seguimiento como un nieto separado, no como un padre.

Además, podrá enviar información de rastreo a un archivo específico en lugar de stderr, establecer la sobrecarga para el seguimiento de syscalls a un uso general, establecer un archivo PID para el proceso de rastreo, limitar la longitud de las cadenas de impresión para strsize chars, para ejecutar comandos como el nombre de usuario que maneja setgid y / o setuid, y para separar en un syscall específico.


Comenzar con strace

strace solo se distribuye como un tarball fuente, pero se puede instalar fácilmente en numerosas distribuciones de Linux desde sus repositorios principales de software. Para instalarlo desde las fuentes, simplemente descargue la última versión de Softoware, guarde el archivo en la ubicación que desee y descomprímalo.

Abra una aplicación de Terminal, vaya a la ubicación de los archivos de archivo extraídos (por ejemplo, cd /home/softoware/strace-4.9), ejecute el archivo ./configure && make & rsquo; comando para configurar y compilar strace, y luego ejecutar el & lsquo; make install & rsquo; comando como root o el & lsquo; sudo make install & rsquo; comando como usuario privilegiado para instalar todo el sistema strace.

Qué hay nuevo en este lanzamiento:

  • Mejoras:
  • Agregó -yy opción para imprimir información de protocolo y dirección asociada con los descriptores de socket.
  • Extendido & quot; -e read = set & quot; y & quot; -e write = set & quot; opciones para abarcar syscalls sendmsg, recvmsg, sendmmsg y recvmmsg.
  • Se implementó la decodificación completa de 32 bits de los comandos ioctl (se aborda el error Debian # 692913 y el error # 902788 de Fedora).
  • Implementado el soporte API PTRACE_GETREGS en ia64.
  • Implementado el soporte API PTRACE_GETREGS en mips.
  • Se implementó el soporte API PTRACE_GETREGSET en s390 / s390x.
  • Descodificación implementada de syscalls de getrandom y seccomp.
  • Implementado la decodificación completa de conjuntos de capacidades de 64 bits.
  • Se implementó la decodificación de todos los comandos de prctl.
  • Se implementó la decodificación de comandos de ioctl parametrizados.
  • Implementado la decodificación de los comandos evdev ioctl.
  • Implementación de decodificación de los comandos v4l ioctl.
  • Se implementó la decodificación de los comandos SG_IO v4 ioctl.
  • Implementado la descodificación de los comandos FIFREEZE / FITHAW / FITRIM ioctl.
  • Se implementó la decodificación de indicadores FALLOC_FL_ * fallocate.
  • Se implementó la decodificación de la máscara de señal rt_sigreturn en aarch64, x32 y x86_64.
  • Decodificador de socket mejorado para admitir conectores bluetooth.
  • Decodificación mejorada de comandos ioctl no listados.
  • Decodificación mejorada de getsockopt y setsockopt syscall.
  • Decodificación mejorada de syscall de sysinfo.
  • Decodificación mejorada de struct cmsghdr.
  • Decodificación mejorada del estado de espera.
  • Compatibilidad mejorada con aio en arquitecturas que no sean x86 mediante el uso de libaio.h. externo
  • Agregó O_TMPFILE a la lista de indicadores de modo abierto reconocidos.
  • Se actualizó la lista de constantes de tipo de sistema de archivos que se usa para descodificar las llamadas de familia de statfs.
  • Lista actualizada de las constantes CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ * y TFD_ *.
  • Lista actualizada de constantes de señal de Linux 3.19.
  • Lista actualizada de constantes de errno de Linux 3.19.
  • Lista actualizada de comandos ioctl de Linux 3.9.
  • Se agregaron nuevas entradas de syscall para que coincidan con Linux 3.19.
  • Corrección de errores:
  • Se corrigieron varios errores en la asignación entre los números de syscall y la información asociada, como el número de argumentos de syscall, el nombre de syscall y el decodificador de syscall.
  • Cuestiones de cotización corregidas en descriptores de impresión, nombres de archivos, nombres de interfaz de red, miembros de struct utsname, nombres de dispositivo / volumen de comandos BLK * ioctl.
  • Se corrigió la decodificación de uid_t / git_t.
  • Se corrigieron posibles problemas de lectura fuera de límites en decodificadores getdents / getdents64.
  • Se corrigió el posible truncamiento de banderas abiertas en algunas arquitecturas.
  • Decodificación fija de struct ifreq.ifr_name.
  • Decodificación fija del comando SIOCSIFNAME ioctl.
  • Decodificación fija de RENAME_ * renameat2 flags.
  • Se corrigió la decodificación de las estructuras de tiempo UTIME_NOW / UTIME_OMIT.
  • Decodificación fija de subclases de ipc indirectos en algunas arquitecturas.
  • Se ha corregido la decodificación de fanyify_mark syscall en arquitecturas de 32 bits.
  • Decodificación fija de estructuras estadísticas de 32 bits en arquitecturas de 64 bits.
  • Se corrigió la decodificación de struct cmsghdr de 32 bits en arquitecturas de 64 bits.
  • Decodificación fija del desplazamiento preadv / pwritev de 32 bits en arquitecturas de 64 bits.
  • Se corrigió la decodificación de la máscara de señal sigreturn / rt_sigreturn en ia64, ppc, ppc64, sparc, sparc64, mips y s390.
  • Salida de puntero de instrucción fija (opción -i) en arquitecturas que admiten varias personalidades.
  • Comportamiento fijo de & quot; -e read = set & quot; y & quot; -e write = set & quot; cuando los conjuntos de lectura y escritura se cruzan.
  • Edificación fija en sistemas donde struct sigaction no tiene miembro sa_restorer.
  • Versión fija con uclibc y musl libc.
  • Portabilidad:
  • Linux kernel & gt; = 2.5.46 es obligatorio. Las versiones anteriores sin un soporte decente PTRACE_SETOPTIONS no funcionarán.
  • En mips, se requiere Linux kernel & gt; = 2.6.15. Las versiones antiguas sin un soporte decente PTRACE_GETREGS no funcionarán.
  • En s390 y s390x, se requiere Linux kernel & gt; = 2.6.27. Las versiones anteriores sin un soporte decente PTRACE_GETREGSET no funcionarán.

Qué hay de nuevo en la versión 4.9:

  • Cambios en el comportamiento:
  • Compatibilidad con OABI desactivada en los sistemas EABI de ARM de forma predeterminada, se agregó la opción --enable-arm-oabi para habilitarla en el momento de la configuración.
  • Mejoras:
  • Opción experimental -k añadida para imprimir el seguimiento de pila después de cada syscall rastreada.
  • Se agregó la opción -w para generar estadísticas en la latencia de syscall. (se dirige a la falla de Debian # 457497).
  • Compatibilidad con la arquitectura ARC agregada.
  • Se agregó soporte API PTRACE_GETREGS en PowerPC.
  • Compatibilidad mejorada con libc Bionic y musl libc.
  • Seguimiento mejorado de procesos de personalidad x86 en x86_64 y x32.
  • Seguimiento mejorado de los procesos de personalidad ARM en AArch64.
  • Detección de personalidad mejorada de 32/64 bits en PowerPC.
  • Implementado la decodificación de add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2 y request_key syscalls.
  • Decodificación robusta de select, pselect y io_submit syscalls.
  • Decodificación mejorada de delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns y sync_file_range syscalls.
  • Decodificación mejorada de máscaras de bits de señal.
  • Decodificación mejorada de descriptores de archivos.
  • Decodificación siginfo_t mejorada.
  • Decodificación mejorada de PF_NETLINK.
  • Constantes CLOCK_ * actualizadas (direcciones error # 1088455 de Fedora).
  • Se agregaron nuevas entradas de syscall para que coincidan con Linux 3.16.
  • Corrección de errores:
  • Agregó shmat y shmdt al conjunto de syscalls relacionados con la asignación de memoria.
  • Separación fija de procesos detenidos.
  • Se corrigió la decodificación de fanotify_mark en arquitecturas de 32 bits.
  • Decodificación de desplazamiento fijo en syscalls preadv y pwritev.
  • Se corrigió la decodificación selectiva para glibc en el modo _FORTIFY_SOURCE.
  • Se corrigió la decodificación de epoll_ctl syscall con el argumento EPOLL_CTL_DEL.
  • Se corrigió la compilación cuando y el conflicto (se dirige a la falla de Fedora # 993384).
  • Correcciones varias en la página del manual. (Responde el error de Debian # 725987).

Qué hay de nuevo en la versión 4.8:

  • Cambios en el comportamiento:
  • En el caso de la terminación normal de la cadena, cuando la salida del rastreo se redirecciona a una tubería, ahora strace la cierra y espera la terminación del proceso de la tubería antes de la salida.
  • Mejoras:
  • Se implementó el rastreo utilizando la API PTRACE_SEIZE (cuando esté disponible).
  • Se implementó una detección de personalidad de procesos basada en PTRACE_GETREGSET más confiable en x86-64 y x32 (cuando esté disponible).
  • Se agregó -e trace = opción de memoria para rastrear asignaciones de sys relacionadas con mapeo de memoria.
  • Opción documentada -b.
  • Los mensajes de estado de salida permitidos se suprimen dando la opción -q dos veces.
  • Se agregó soporte de arquitectura AArch64 (direcciones bug Debian # 693074 y error # 969858 de Fedora).
  • Se agregó soporte para las arquitecturas OpenRISC 1000, Meta y Xtensa.
  • Se agregó soporte de personalidad tilegx para Tile.
  • Soporte mejorado de arquitecturas NOMMU.
  • Decodificación mejorada de getdents, mmap, perf_event_open, ptrace y quotactl syscalls.
  • Se agregaron nuevas entradas de syscall para que coincidan con Linux 3.9.
  • Regenerado la lista de nombres comunes de ioctl de Linux 3.9.
  • Actualizó la lista de constantes errno.
  • Lista actualizada de las constantes AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ * y TCP_ *.
  • Implementado la decodificación de ioctls UBI.
  • Eliminado redundante & quot; * 32 & quot; nombres ioctl.
  • Corrección de errores:
  • Se corrigió la ERESTARTNOINTR que se filtraba al espacio de usuario en kernels antiguos (se trata del error # 659382 de Fedora).
  • Se arregló el análisis de cadenas de versión de kernel (se dirige al error de Debian # 702309).
  • Decodificación fija de * xattr syscalls (direcciones de error de Fedora # 885233).
  • Se arregló el manejo de los archivos con números de inodo de 64 bits por medio de una cadena de 32 bits (direcciones de error de Fedora # 912790).
  • Horquillas de seguimiento fijas en SPARC.
  • Se corrigió la decodificación de las llamadas de sistema fadvise64, fallocate, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl y truncate64.
  • Se corrigieron las categorías de varias llamadas de sistema en la mayoría de las arquitecturas compatibles.
  • Se ha corregido la decodificación de syscalls de mensajes de personalidad recv [m] no nativos de 32 bits.
  • Se corrigió la decodificación de múltiples syscalls de personalidad de 32 bits en x32.
  • Se corrigió la decodificación de largos y largos argumentos syscall en arquitecturas ARM, MIPS / o32, PowerPC, S390x y Tile.
  • Se ha corregido la decodificación de semtimedop en S390x.
  • Se ha corregido la decodificación de sram_alloc en Blackfin.
  • Se corrigió la compilación cuando process_vm_readv es una puñalada.
  • Versión fija con versiones anteriores de libaio.h.

¿Qué hay de nuevo en la versión 4.7:

  • Esta es una versión estable, con las correcciones de errores habituales, soporte mejorado para núcleos Linux nuevos y otros mejoras.

Qué hay de nuevo en la versión 4.6:

  • Esta es una versión estable, con correcciones de errores habituales, soporte mejorado para nuevos kernels de Linux y otras mejoras, incluido un nuevo método de seguimiento de syscalls de clonación, fork y vfork que utiliza las funciones explícitas del kernel de Linux para rastrear la creación de subprocesos y procesos secundarios.

Qué hay de nuevo en la versión 4.5.20:

  • Mejoras:
  • Descodificación implementada de nuevas llamadas de sistema de Linux: inotify_init1, recvmmsg.
  • Se implementó la decodificación básica de las nuevas llamadas de sistema de Linux: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
  • Decodificación mejorada de syscalls recientemente agregados en arquitecturas distintas de x86 mediante la sustitución de un decodificador simple con analizadores elaborados habilitados anteriormente para x86 / x86-64.
  • Implementada -C opción para combinar salida regular y -c. (Soluciona el error de Debian # 466196)
  • Decodificación mejorada de syscalls mbind y mremap.
  • Decodificación de opciones de socket SOL_PACKET mejorada.
  • Lista regenerada de nombres de ioctl de Linux 2.6.33.
  • Compatibilidad con la arquitectura TILE añadida.
  • Corrección de errores:
  • Compilación fija con encabezados del kernel de Linux 2.6.32-rc5 +. (Responde el error # 560516 de Debian y el error # 539044 de Fedora)
  • Arreglo fijo en mips.
  • Manejo fijo de sistemas Linux sin struct statfs64.
  • Se corrigió la máscara de señal de informes por sigreturn en powerpc.
  • Se corrigió el posible desbordamiento del búfer de la pila en el decodificador de selección. (Se dirige al error # 556678 de Fedora)
  • Se corrigió la decodificación ipccall indirecta de msgsnd.
  • Decodificación corregida de llamadas de sistema de 64 bits. (Corrige el error de Debian # 570603)
  • Se corrigió la decodificación de getsockopt en arquitecturas donde sizeof (long) & gt; sizeof (int). (Responde el error de Debian # 494844)
  • Decodificación corregida de epoll_pwait. (Soluciona el error de Debian # 513014)
  • Manejo corregido de los hilos muertos.

Programas parecidos

Pyshield
Pyshield

11 May 15

Meliae
Meliae

11 May 15

Clint
Clint

2 Jun 15

pytrace
pytrace

20 Feb 15

Comentarios a la strace

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!