Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

User PDB instead of SYM files for Domino 9 Win64

Daniel Nashed  7 November 2013
Since 6.5.x ISVs could use "sym" files for their C-API applications to allow NSD to annotate the call-stacks.
The tool to generate IBM Notes/Domino compatible SYM files was called "map2isym.exe". It was shipped only with some versions of the C-API toolkit.
Because I mentioned it in some of my presentations I got many requests to send a copy of this tool.

With Domino 9 and 64bit IBM needed a new version of SYM files to addess issues they had with 64bit.
In Domino 8.5.x 64bit on Windows we already had issues annotating and needed a work-around setting "-base:0x1c000000".

With Domino 9 you would need a new map2isym.exe which has not been released. IBM wants us to use PDB files instead.
PDB files contain much more than what we need for annotation but luckily there is a way to strip those PDB files.

IBM switched to "sym file format 3" and they will continue to use sym files because PDB files would be way too big and you would need one for each servertasks that Domino ships with.

The current error message that NSD will generate is:

WARNING (0): Sym file (C:\Domino\nnshtest.sym) is version 2. The supported sym file format version for this release is 3. This sym file will be ignored.

In Domino 9.0.1 the message has been updated:

WARNING (0): Sym file (C:\Domino\nnshtest.sym) is version 2. The supported sym file format version for this release is 3. This sym file will be ignored. For improved diagnostics, consider using the PDB files instead.

The new recommendation from IBM is to generate a PDB file instead of SYM files. They will not ship a new maip2isym tool. Domino will search for the file in the original path and the current path -- as long the filename stays the same.

So if you link your application with

/Debug /PDB:nnshtest.pdb /PDBSTRIPPED:nnshtest_stripped.pdb

You have to provide the stripped version but need to rename it to the unstripped version when you deploy it.

NSD in Domino 9 (I have tested it also with some earlier versions and NSD has also used PDB files there) is able to read PDB files and you should ship your application with PDB files instead of SYM files in Domino 9.
You can continue to use SYM files for 32bit. I am personally keeping my Domino 8.5.x development environment for 32bit and continue to distribute code that works on Domino 8.5.x and Domino 9.x.
But I will recompile code for Domino 9 Win64 using the new compiler and generating PDB files.

So for full Domino 9 64bit support an ISV needs to switch to the Microsoft Visual Studio 2010 SP1 compiler as mentioned in a previous log post and also switch from SYM to PDB.

I checked IBM and they are working on an update for the C-API toolkit to describe what exactly is required and maybe they are also updating the makefiles for the sample programs.

-- Daniel

No Comments Found


  • [IBM Lotus Domino]
  • [Domino on Linux]
  • [Nash!Com]
  • [Daniel Nashed]