Investigate: symbols
Yeah, upgrading this dependency is one of the more complicated release operations we would need to do. In addition to several teams using SQLite, there is mix of approaches (static linking and shared library, with or without wrappers). Finding a way to provide symbols for the library would be tremendously valuable, likely to the point of convincing teams to go through the effort of updating.
Originally posted by @sharwell in https://github.com/dotnet/roslyn/issues/39364#issuecomment-548825468
If you try to tackle this and get stuck on some part, let me know and I'll find a domain expert to help.
Note that SQLitePCL.raw and other managed binaries are easier to provide symbols for, but also not quite as essential since we can get metadata from the assemblies themselves. The huge benefit would be symbols for the native SQLite binaries.
I'm looking for PDB files for e_sqlite3.dll on UWP with x86/x64/ARM64 architectures. Going by this conversation, I'm guessing they simply don't exist? In particular, we need them to run as part of an internal static analysis process to ship our app.
Here's a little bit of progress which may or not be helpful to folks interested in this issue:
The e_sqlite3 and e_sqlcipher builds are actually maintained over in another repo, and I just committed a change there: ericsink/cb@f431239
In that repo, I have modified the build script to include /DEBUG:FULL on all Windows builds, and I have rebuilt those builds and committed them with their PDB files. Look in the bld\bin directory.
Each e_sqlite3.dll therein was built from exactly the same source as the one in SQLitePCLRaw 2.0.2. So you could maybe try just grabbing the PDB from that repo to use with the 2.0.2 dll. But I rather doubt that will work. To get a matching pair, you would probably need to grab the new dll as well as the pdb.
I have yet to figure out how I will package these PDBs.
I also have yet to figure out how I might address this issue on other platforms.
Hey Eric. I work with Rehan. Is it possible to update the script further to link with /profile?
https://docs.microsoft.com/en-us/cpp/build/reference/profile-performance-tools-profiler?view=vs-2019
This is required for the static analysis process previously mentioned.
@jamcesft I'm not so sure about /PROFILE. The docs say it is only present in the enterprise edition, and I don't know if I want to take a dependency on that. It also appears to imply certain compile options that are different from my current settings, so there's a risk that needs to be evaluated.
Consider me "undecided" on this issue for the moment.
@ericsink thanks.
I think a combination of "/debug:full /debugtype:cv,fixup /incremental:no" is also supported by our tools which I don't believe would have the enterprise dependency if that's a more palatable option?
Thanks again
@ericsink Just wanted to see if there is an update on this issue. I am also looking to run a static analysis on sqlite3, in particular version 3.13.0 but I think the .pdb files in the repository mentioned above do not match this version.
Thanks
No, there are no further updates here, but thanks for the prod. I need to give this issue a fresh look. It appears that I made some changes to build the necessary symbols but never took the next step to package/ship them.
@ericsink Hi Eric. Just checking in if there is any update on getting pdb files for the PCL raw assemblies.
Darn, no update. That's embarrassing.
I'm working on significant changes to simplify the way everything is built, as inspired by some suggestions from Brice. I'll try to get this issue included as part of that change.