2009-07-08 25 views
5

Tengo un script de python administrando un proceso de gdb en Windows, y necesito poder enviar un SIGINT al proceso generado para detener el proceso de destino (administrado por gdb)Enviando SIGINT a un subproceso de python

Parece que solo hay SIGTERM disponible en win32, pero claramente si ejecuto gdb desde la consola y Ctrl + C, piensa que está recibiendo un SIGINT. ¿Hay alguna manera de fingir esto de modo que la funcionalidad esté disponible en todas las plataformas?

(estoy usando el módulo de subproceso, y Python 2,5/2,6)

Respuesta

1

Windows no tiene el UNIX señales mecanismo IPC.

Me gustaría enviar un CTRL-C al proceso gdb.

+0

De acuerdo con el siguiente enlace, no se puede enviar CTRL + C ?? – Ryan

+0

Enviaría la secuencia de teclas falsas al proceso GDB. Algo así como un programa Macro. Definitivamente no es bonito. Otra opción es instrumentar el proceso de gdb con un mecanismo confiable de win32 IPC. – drudru

+0

La secuencia de teclas falsas no funciona. No es GDB que procesa la secuencia de teclas en una interrupción. El intérprete de comandos captura el CTRL + C, y luego lo convierte en un tipo de evento IPC que es recogido por gdb e interpretado como un SIGINT (aunque las ventanas tal como lo conocemos no tienen SIGINT) Cuando dices "instrument the Proceso de gdb con un mecanismo confiable de win32 IPC "te refieres a mucho en el código de GDB ¿verdad? Al igual que ir y soltar en una tubería con nombre o alguna bandera o algo que podría establecer externamente? Supongamos que tampoco es una opción en este caso. – Ryan