Hi,
On linux, with gdb, I'm trying to trace into openssl while it's going
into FIPS mode. I've built the canister and then the openssl tree
(which includes the openssl cmd line utility).
Here's the output I'm getting:
*$ export OPENSSL_FIPS=1*
*$ gdb openssl*
GNU gdb 6.6-5.1bgr ()
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as ""...
Using host libthread_db library "/lib/tls/libthread_db.so.1".
*(gdb) break FIPS_mode_set*
Function "FIPS_mode_set" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (FIPS_mode_set) pending.
(gdb) r
Starting program: /usr/bin/openssl
Breakpoint 2 at 0x777efee0
Pending breakpoint "FIPS_mode_set" resolved
*Breakpoint 2, 0x777efee0 in FIPS_mode_set () from
/usr/lib/libcrypto.so.0.9.8*
*(gdb) step**
**Single stepping until exit from function FIPS_mode_set, *
which has no line number information.
0x77753567 in __i686.get_pc_thunk.bx () from /usr/lib/libcrypto.so.0.9.8
(gdb) step
Single stepping until exit from function __i686.get_pc_thunk.bx,
which has no line number information.
0x777efeec in FIPS_mode_set () from /usr/lib/libcrypto.so.0.9.8
(gdb) step
Single stepping until exit from function FIPS_mode_set,
which has no line number information.
main (Argc=1, Argv=0x7fe146c4) at openssl.c:245
As you can see, after I hit the break point, and try to step into it, It
seems to skip over actually going into the routine.
The file command says that /usr/lib/libcrypto.so.0.9.8 is not stripped:
$ file /usr/lib/libcrypto.so.0.9.8
/usr/lib/libcrypto.so.0.9.8: ELF 32-bit LSB shared object, Intel
80386, version 1 (SYSV), not stripped
And the FIPS canister that was build doesn't appear to be stripped:
$ file fipscanister.o
fipscanister.o: ELF 32-bit LSB relocatable, Intel 80386, version 1
(SYSV), not stripped
And, I don't see anything in the Makefile that pulls in the canister
that is stripping it.
So, I'm a little confused as to why I'm unable to trace into the source..
It there some documentation that explains how to build things for
debugging? Are there some config flags I need to pass?
Thanks. Any help would be appreciated.