[SERVER-84143] Improve Windows Debugging capabilities for BSON and core dumps Created: 13/Dec/23  Updated: 02/Feb/24

Status: Open
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Matt Kneiser Assignee: Matt Kneiser
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Storage Execution
Sprint: Execution Team 2024-01-08, Execution Team 2024-01-22, Execution Team 2024-03-04
Participants:

 Description   

Assortment of improvements:

  1. For non-debug evergreen builds (i.e. check for enableTestCommands), consider adding more information to the minidump configuration (MS docs, SO post):
    • MiniDumpWithThreadInfo
    • MiniDumpWithUnloadedModules
    • MiniDumpIgnoreInaccessibleMemory
    • MiniDumpWithTokenInformation
  2. Allow the windows debugging types for BSON in all windows builds, including them in non-debug builds will aid debugging and shouldn't have any user impact.
  3. Investigate improvements to the spawnhost script that will make the natvis file available to Visual Studio without user interaction. Will simply copying it to the right directory allow this?

 



 Comments   
Comment by Matt Kneiser [ 15/Dec/23 ]

From the MS docs on natvis, the 4th and 5th items in load priority order seem to fit what we could achieve:

  1. .natvis embedded into the .pdb
  2. .natvis loaded in the VS project
  3. .natvis installed and registered with VSIX pkg
  4. user-specific: %USERPROFILE%\Documents\Visual Studio 2022\Visualizers
  5. system-wide: <VS Installation Folder>\Common7\Packages\Debugger\Visualizers
Comment by Matt Kneiser [ 14/Dec/23 ]

Talking with mark.benvenuto@mongodb.com, for item 1, we should just enable MiniDumpWithFullMemory for test builds, and can add the minor flags for production builds.

Generated at Thu Feb 08 06:54:10 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.