使用-g在Linux上构建OpenSSL以进行调试

时间:2012-06-20 23:57:22

标签: debugging build compilation makefile openssl

我有一个来自OpenSSL(特别是SSL_read)的段错误,我想调试。我认为这里采取的最佳步骤是使用调试符号自己构建库,这样我就可以进入函数并查看它正在发生的命令。我不清楚如何a)自己构建库和b)破解makefile给我调试符号。有没有人有使用这个特定库的经验,或者对这种构建和修改方法有一般指导?

出现此错误:

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

不知道该怎么做。操作系统信息:

$ cat /proc/version
Linux version 3.2.0-24-virtual (buildd@yellow) (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

3 个答案:

答案 0 :(得分:5)

您可以按照here提到的简单说明来构建OpenSSL。要进行调试构建,请在运行-d时添加./config标记,即./config -d [other options]。详细提到了构建OpenSSL here

答案 1 :(得分:4)

在新版本的OpenSSL上,看起来传递给./Configure的标志在编译时直接注入gcc行。我刚刚做了./Configure -g linux-x86_64并在我的构建中成功获得了调试符号。

答案 2 :(得分:2)

运行常规配置步骤后,从shell执行以下操作:

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

它修改生成的makefile;而不是优化选项-O3,它放在-g选项中(生成调试符号)。