2012-06-20 4 views
5

Tengo una segfault proveniente de OpenSSL (específicamente SSL_read) que me gustaría depurar. Creo que el mejor paso a seguir aquí es construir la biblioteca con símbolos de depuración para poder acceder a la función y ver el comando en el que está sucediendo. No tengo claro cómo a) construir la biblioteca yo mismo yb) hackear el archivo make para darme los símbolos de depuración. ¿Alguien tiene experiencia haciendo esto con esta biblioteca específica, o tiene pautas generales sobre este tipo de enfoque de compilación y modificación?Crear OpenSSL en Linux con -g para depurar

dio este mensaje:

./config -d 
Operating system: x86_64-whatever-linux2 
This system (debug-linux-x86_64) is not supported. See file INSTALL for details. 

No está seguro de qué hacer aquí. OS Info:

$ cat /proc/version 
Linux version 3.2.0-24-virtual ([email protected]) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.31ubuntu5)) #37-Ubuntu SMP Wed Apr 25 10:17:19 UTC 2012 
$ uname -srvio 
Linux 3.2.0-24-virtual #37-Ubuntu SMP Wed Apr 25 10:17:19 UTC 2012 x86_64 GNU/Linux 

Respuesta

4

Usted puede seguir las instrucciones simples mencionan here para la construcción de OpenSSL. Para crear una versión de depuración, agregue el indicador -d cuando ejecuta ./config, es decir, ./config -d [other options]. La construcción de OpenSSL se menciona en detalle en here.

+0

no funcionó - publicó la salida a mi pregunta original – djechlin

+0

Intentando de nuevo con la última versión ... Seguí en silencio la primera guía que publicaste cuando 0.9.8c era actual, supongo. – djechlin

+0

OK. Me abrí paso desde allí, lo conseguí. – djechlin

1

Después de ejecutar el paso de configuración regular, hacer lo siguiente desde la shell:

$ find . -name Makefile | xargs sed -i -e 's#-O3#-g#g' 

Modifica el makefiles generados; en lugar de la opción de optimización -O3 pone en la opción -g (generar símbolos de depuración).

2

En las versiones nuevas de OpenSSL, parece que los indicadores pasados ​​a ./Configure se inyectan directamente en la línea gcc al compilar. Acabo de hacer ./Configure -g linux-x86_64 y obtuve con éxito símbolos de depuración en mi compilación.

Cuestiones relacionadas