SQLitePCL.raw icon indicating copy to clipboard operation
SQLitePCL.raw copied to clipboard

Investigate: symbols

Open ericsink opened this issue 6 years ago • 10 comments

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

ericsink avatar Nov 01 '19 15:11 ericsink

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.

sharwell avatar Nov 01 '19 15:11 sharwell

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.

RehanSaeed avatar Nov 11 '19 15:11 RehanSaeed

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.

ericsink avatar Nov 11 '19 17:11 ericsink

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 avatar Nov 21 '19 14:11 jamcesft

@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 avatar Nov 21 '19 15:11 ericsink

@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

jamcesft avatar Nov 21 '19 16:11 jamcesft

@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

msyngo avatar Jan 09 '23 20:01 msyngo

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 avatar Jan 09 '23 21:01 ericsink

@ericsink Hi Eric. Just checking in if there is any update on getting pdb files for the PCL raw assemblies.

ajcvickers avatar Dec 11 '23 19:12 ajcvickers

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.

ericsink avatar Dec 11 '23 19:12 ericsink