Capture el mensaje "Fallo de segmentación" para un subproceso bloqueado: sin salida y error después de una llamada para comunicarse ()

Tengo problemas para usar el módulo de subproceso para obtener la salida de programas bloqueados. Estoy usando python2.7 y subproceso para llamar a un programa con argumentos extraños para obtener algunos valores predeterminados. Para llamar al programa, utilizo el siguiente código:

proc = (subprocess.Popen(called,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE))
out,err=proc.communicate()
print out,err

llamado es una lista que contiene el nombre del programa y el argumento (una cadena que contiene bytes aleatorios, excepto el byte NULL que subproceso no le gusta en absoluto)

El código se comporta y me muestra el stdout y el stderr cuando el programa no falla, pero cuando falla, out y err están vacíos en lugar de mostrar el famoso "Fallo de segmentación".

Deseo encontrar una manera de salir y errar incluso cuando el programa falla.

Espero que alguien aquí como una idea :)

PD: también probé los métodos check_output / call / check_call

EDITAR:

Estoy ejecutando este script en un Archlinux de 64 bits en un entorno virtual de Python (no debería ser algo importante aquí, pero nunca se sabe: p)

El segfault ocurre en el programa C que intento ejecutar y es consecuencia de un desbordamiento del búfer

El problema es que cuando ocurre el segfault, no puedo obtener la salida de lo que sucedió con el subproceso

Obtengo el código de retorno correcto: -11 (SIGSEGV)

Usando python obtengo:

 ./dumb2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
 ('Exit code was:', -11) 
 ('Output was:', '') 
 ('Errors were:', '')

Mientras estoy fuera de Python obtengo:

./dumb2 $(perl -e "print 'A'x50")  
BEGINNING OF PROGRAM 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
END OF THE PROGRAM
Segmentation fault (core dumped)

El valor de retorno del shell es el mismo: echo $? devuelve 139, entonces -11 ($? & 128)

Respuestas a la pregunta(3)

Su respuesta a la pregunta