Build OpenSSL on Linux with -g for debugging

17,318

Solution 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.

Solution 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.

Solution 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).

Share:
17,318

Related videos on Youtube

djechlin
Author by

djechlin

Java, C++, Javascript, Typescript, Angular Background in math / machine learning.

Updated on September 19, 2022

Comments

  • djechlin
    djechlin almost 2 years

    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