Como programa de Linux depuración multiproceso de

  

En el sistema operativo Linux, a menudo nos encontramos con el problema de la depuración de procesos múltiples, la depuración de procesos múltiples, de hecho, no se imaginaba tan complicado, Xiao Bian le dio acerca de cómo bajo la depuración de Linux y más procedimientos de proceso, y amigos interesados ​​pueden querer entender la siguiente.
depuración

multi-proceso:

(1) el seguimiento del modo de tenedor

set seguimiento tenedor en modo [parent |  Depuración tenedor de los padres después de depurar el proceso principal por defecto es un tenedor después de: niño] y mdash; — — —:; Seleccionar depurar el proceso padre después de tenedor o el hijo

(padre-hijo continuará para depurar el proceso padre después de tenedor. proceso)

set separar-en-tenedor [on |  off] — — — — si se desconecta a proceso de depuración indicación BGF después de un tenedor, o para los
de control gdb

(en: off-tenedor-modo de seguimiento depurador proceso especificado; apagado: el control de gDB los procesos padre e hijo, seguimiento tenedor modo será designado proceso de depuración, poner en un estado de pausa por otro proceso)

(2) acoplar el pid

ubuntu gDB para fijar la autoridad PID no es suficiente, es necesario cambiar a la raíz, o puede sudo chmod + s /usr /bin /gDB gDB para agregar permisos.

Uso conectar la mayoría tienen que empezar a añadir el sueño declaración () en el código de proceso entre padres e hijos, dejar que el proceso de sueño, después de correr en el proceso de fondo, el proceso hijo pid conseguir a través de PS, y, finalmente, coloca pid entrar en procesos secundarios de depuración. .

Por ejemplo:

$ /test &//probar el proceso que se ejecuta en segundo plano

$ ps -ef |  prueba grep //ver el proceso pid

Los resultados similares a la forma siguiente:

XXX 12345 23456 — — — — — — — — — — — — — — — —. /Test //matriz

XXX 12346 12345 — — — — — — — — — — — — — — — —. /Proceso de prueba //niño, donde el primer número es el proceso hijo pid

$ gdb -q prueba

(BGF) adjuntar 12346 //adjuntar al proceso hijo

Añadir el sueño () puede ser como la siguiente afirmación:

mientras (pausa) //pausa es una variable signo

sueño (1);

depuración gdb sólo tiene que establecer la pausa = 0 no satisface las condiciones para llevar a cabo código subsiguiente.

(3) GDB envoltorio

Cuando el tenedor proceso padre un proceso hijo, el proceso hijo inmediatamente llama a la función exec para ejecutar el nuevo código, entonces se puede también utilizar envoltorio GDB. La ventaja es que ningún código adicional.

en Linux se ejecutará un proceso en segundo plano:

(1). /Test &

(2) y ". /Test " después pulse " Ctrl + Z ", con y " bg% num y " Digital el proceso vuelve a segundo plano; Restaurant at

Linux, el proceso de volver primer plano:

con y " fg% num y "

lo anterior es la forma en la depuración de Linux multi-proceso introdujo, la depuración de procesos múltiples que suelen utilizar es gDB, cuando se está depurando la cantidad será utilizado herramientas de depuración gdb.

Copyright © Conocimiento de Windows All Rights Reserved