8

OTN Thread: Does Oracle provide public Symbol Files (PDB) for OCCI/OCI ?

When debugging an application under Windows (with Visual Studio or WinDBG) that makes use of OC[C]I it would often be convenient if there be symbol files (PDB files) for the Oracle OCI/OCCI libraries. (public symbol files, just as Microsoft makes available for all system libraries)

Does Oracle provide these?

Note: These public symbol files would be especially welcome for the Oracle libraries because we did have a few crashes where the call stack was inside on of the oci/occi libraries and it does appear that the (probably optimization) settings used to produce these DLLs effectively prevent Visual Studio from displaying any usable call stack for a user dump when inside these libs.

As a further clarification to the previous paragraph: This doesn't imply a crash in the OCCI libs. It just means if one thread happens to be inside an OCCI call and a user dump is generated (for whatever reason - could be generated on demand for any running application), the call stack for this thread is (at least semi-) messed up. Therefore public symbol files would come in extremely handy.

Martin Ba
  • 37,187
  • 33
  • 183
  • 337
  • Even if the crash occurs within OCI, it can just be because erroneous arguments were provided to OCI calls. Most calls take void* params, with enum values or byte sizes for those pointers, so any mistake in those calls can lead to hard-to-debug crashes inside OCI. I've often wished for .PDBs for oci.dll as well. – ddevienne Feb 18 '13 at 08:14
  • @ddevienne - FAir enough. Note though that we're using OCCI, the C++ API, and as far as I can tell it's a tad harder to misuse. – Martin Ba Feb 18 '13 at 08:30
  • 1
    Right. We started with OCCI, but after hitting its limitations one too many times, and also because it always lags in providing a .dll compiled with newer versions of Visual Studio when they come out, we switched to OCI, which despite the steep learning curve can do anything Oracle supports, and as a C library works with any Visual Studio. – ddevienne Feb 18 '13 at 08:36
  • @ddevienne - Nice Info. Thanks. – Martin Ba Feb 18 '13 at 10:10
  • This information doesn't deserve to be an "answer" for this question, but let me still add it as a comment here for interested parties: Not for all, but most of the binaries, Oracle does ship .SYM files which are in a proprietary format - it seems they're using it in their own incident records when the product crashes, etc. Denis Yurichev's [RE4B](https://beginners.re/) book contains a whole section [9.5](https://yurichev.org/1564f46f1c207b2dbc84a2bd4a41ed4c/RE4B-EN.pdf#207) on their format. – OzgurH Sep 14 '20 at 21:53

1 Answers1

6

No, Oracle does not provide these files, neither for OCCI nor for OCI. (at least not for version 10, nor for 11)

The reason really escapes me, but trying to get behind any reasoning of Oracle is a sure road to insanity.

I should add a quote from the Oracle forums:

unfortunatly not - only in case of a bug support can request such symbol files from development Oracle ships only the debugging libraries which named *d.dll

This wasn't an official Oracle response, but I guess the user knew what he was talking about.

Martin Ba
  • 37,187
  • 33
  • 183
  • 337