On 19-06-2010 01:49, Dave Thompson wrote:
From: owner-openssl-us...@openssl.org On Behalf Of William A. Rowe Jr.
Sent: Friday, 18 June, 2010 00:59
On 6/17/2010 10:10 PM, Dave Thompson wrote:
(MSVC++ build)
2. Even if you have symbols, I believe they use relative pathnames,
and the IDE has to be told where to find them. In the old VS/VC++6
I have, this is in Tools / Options / Directories / SourceFiles .
In newer versions it's probably different but should be similar.
More to the point, sources are never embedded into the
obj/dll/exe.  They
must be distributed/available alongside a binary distribution
(not really
a problem for open 'source' - heh).

That latter part is true everywhere. Unix objects/executables
with -g contain the linenumbers and name of the sourcefile(s),
but not the actual source, and if you debug on a different system
where the sourcefiles are not present, or on the same system but
the sourcefiles have been deleted (or changed!) it won't work.
If the sourcefiles are present but in a different location,
some debuggers can be persuaded to find them.

However, for MS* there is another difference to know about:
the debug info goes in a separate PDB file -- e.g. libeay32.dll
and libeay32.pdb -- and to debug you need BOTH, PLUS the source.
(* since about 2000; you might find some *really* old progams
that don't have separate PDB, but good luck using them.)



The older formats/alternatives are:

.DBG in place of (or in addition to) .PDB: Option with all pre-2000
MS Compilers, still understood by the free (as in beer) WinDbg/SD/KD
debugger.  Anything that is in .DBG could have been inside the
.EXE/.DLL, but putting it in its own file saves disk space and memory
when not debugging that process.  In closed-source software it also
allows shipping the .EXE/.DLL and keeping the .DBG in the support
department.

.TDS in place of .PDB: Option with Borland/Turbo compilers.
Understood only by Borlands Turbo Debugger of the same version
as the program was compiled with.  Anything that is in .TDS could
have been inside the .EXE/.DLL, but putting it in its own file saves
disk space and memory when not debugging that process.

.SYM in place of .PDB: Used by Microsoft tools with 16 bit executables
and some non-Win32 EXE/DLL formats (VxDs and such).  These were
understood by Microsoft debuggers old enough to actually step through
this code and by the SoftICE debugger.

.NMS in addition to other file types: Used by some NuMega/Compuware
debuggers, including SoftICE.  Unlike other formats, .NMS files may
actually contain the source code itself, to allow debugging with the
file system and disk drivers stopped inside the debugger.  Note that
SoftICE is no longer available due to mismanagement.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to