Build OpenSSL on Linux with -g for debugging

☆樱花仙子☆ 提交于 2019-12-12 08:35:17

问题


I have a segfault coming from OpenSSL (specifically SSL_read) that I'd like to debug. I think the best step to take here is to build the library myself with debug symbols so I can step into the function and see the command it's happening on. It's not clear to me how to a) build the library myself and b) hack the makefile to give me the debug symbols. Does anyone have experience doing this with this specific library, or have general guidelines on this sort of build and modify approach?

Got this error:

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

Not sure what to do here. OS info:

$ 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

回答1:


You can follow the simple instructions mentioned here for building OpenSSL. For making a debug build, add the -d flag when you run ./config, i.e. ./config -d [other options]. Building OpenSSL is mentioned in detail here.




回答2:


On new versions of OpenSSL, it looks like flags passed to ./Configure get injected directly into the gcc line when compiling. I just did ./Configure -g linux-x86_64 and successfully got debugging symbols in my build.




回答3:


After running the regular configure step, do the following from the shell:

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

It modifies the generated makefiles; instead of optimization option -O3 it puts in the -g option (generate debug symbols).



来源:https://stackoverflow.com/questions/11129826/build-openssl-on-linux-with-g-for-debugging

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!