Debugging - ObjectVision/GeoDMS GitHub Wiki

This page assumes you are able to fully compile the GeoDMS executables by following the steps at Compiling the GeoDMS. Debugging is an essential part of software development. There are two ways to debug the GeoDMS: debugging the command line program (GeoDMSRun.exe) and debugging the GUI (GeoDMSGui.exe).

Currently, GeoDMS development is done with Microsoft Visual Studio Community 2026 (MSVC2026).

Debugging GeoDMSRun.exe

  1. In MSVC2026, right-click on GeoDMSRun in the Solution Explorer and select Set as Startup Project.
  2. Right-click on GeoDMSRun again and select Properties.
  3. Navigate to Configuration Properties > Debugging.
  4. In the Command Arguments field, enter the full path to the .dms configuration file you want to debug, followed by the item path you want to run.

Example command arguments:

"C:\Projects\MyConfig\config.dms" /MyContainer/MyItem
  1. Press F5 or click Debug > Start Debugging to start the debugger.

Debugging GeoDMSGui.exe

Debugging the GUI is more dynamic compared to debugging GeoDMSRun.exe, as it allows you to interactively navigate the configuration.

  1. Copy GeoDmsGui.exe from the official GeoDMS installation into your output folder (e.g., bin/x64/Release or bin/x64/Debug).
  2. In MSVC2026, right-click on the project you want to debug and select Properties.
  3. Navigate to Configuration Properties > Debugging.
  4. In the Command field, enter: $(OutDir)/GeoDmsGui.exe
  5. In the Command Arguments field, enter /noconfig to start an empty GUI without loading a configuration file. Alternatively, provide a path to a .dms file to load it directly.

Example command arguments:

/noconfig

or

"C:\Projects\MyConfig\config.dms"
  1. Press F5 to start debugging. You can then open a configuration file from the GUI and navigate to the items you want to debug.

Tips

  • Use breakpoints to pause execution at specific lines of code.
  • Use the Watch and Locals windows to inspect variable values.
  • Use Debug > Windows > Call Stack to view the current execution stack.
  • For performance issues, consider using the Profiler Agent or Visual Studio's built-in profiling tools.