How to Debug OpenSSL with Eclipse
December 2017
OpenSSL
In the OpenSSL source directory, execute the following command:
$ ./config --debug --prefix=/tmp/openssl -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
--debug
: compiles in debug mode
--prefix=/tmp/openssl
: sets the install directory. You need to set
this flag in order for the compiled openssl
to link with the
compiled libraries libcrypto and libssl (which are part of openssl)
-Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
: same reason as
--prefix
, this is to make sure that the compiled openssl
links
with the compiled libraries libcrypto and libssl.
Then, compile OpenSSL:
$ make
Finally, install OpenSSL:
$ make install
Make sure that openssl
loads libssl.so.1.1
and libcrypto.so.1.1
that you just compiled:
$ ldd /tmp/openssl/bin/openssl
linux-vdso.so.1 (0x00007ffc32241000)
libssl.so.1.1 => /tmp/openssl/lib/libssl.so.1.1 (0x00007f7acf5ac000)
libcrypto.so.1.1 => /tmp/openssl/lib/libcrypto.so.1.1 (0x00007f7acf0ad000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f7aceea9000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7acec8a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7ace8a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7acf851000)
libssl.so.1.1
binds to /tmp/openssl/lib/libssl.so.1.1
(not the
system library /lib64/libssl.so.1.1
) and libcrypto.so.1.1
binds to
/tmp/openssl/lib/libcrypto.so.1.1
(not the system library
/lib64/libcrypto.so.1.1
).
Eclipse
CDT
Make sure that you have Eclipse CDT.
Import
In the main menu, select File | New | Project:
Choose Makefile Project with Existing Code:
Click on Browse... and go to your OpenSSL source directory. Then, choose your toolchain for the indexer. Finally, click Finish.
Debugging
Go to Run | Debug Configurations:
Create a new "C/C++ Application" configuration. Choose your OpenSSL
project (openssl) and C/C++ Application (apps/openssl
):
Set the arguments in the arguments tab (genrsa) and click on Debug:
Eclipse should now have started openssl
and paused at the first line
of the main:
You can now debug OpenSSL with Eclipse!
Like this article? Get notified of new ones: