9

我有一个来自 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
4

3 回答 3

7

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

于 2012-06-21T00:22:29.047 回答
4

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

于 2015-08-17T16:24:11.037 回答
2

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

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

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

于 2013-11-26T00:51:52.897 回答