What is a .sym file and how can I use it from Visual-C++?

Martin Ba picture Martin Ba · Mar 28, 2013 · Viewed 7.3k times · Source

Oracle OCCI for VS2010 contains following files:

  • oraocci11.dll (~ 500 KB)
  • oraocci11.lib (~ 800 KB)
  • oraocci11.sym (~ 546 KB)

The DLL is obvious. The lib file - judging from it's size, would appear to be the static library.

But what is the .sym file? Symbol files on windows are "normally" .pdb files. What is it?

And, if it is a symbol file, then how do I use it from VC++?

Answer

Martin Ba picture Martin Ba · Apr 10, 2013

I have found the following snippet in the Oracle docs Oracle® Call Interface Programmer's Guide, 11g Release 2 (11.2), ... OCI Instant Client --

oci.sym, oraociei11.sym, orannzsbb11.sym ... Symbol tables

A .sym file is provided for each DLL and when present in the same location as the DLL, a stack trace with function names is generated when a failure occurs in OCI on Windows.

So I would assume that these files are used by the dlls themselves to resolve symbol names. It's unclear to me what format the follow and what tool is used to generate them, but they don't seem to be needed for the development process (but should be distributed along the DLL).