microsoft / WinDbg-Samples

Sample extensions, scripts, and API uses for WinDbg.
MIT License
702 stars 118 forks source link

SymBuilder Fails to Compile With Undefined Type Error From DbgModelClientEx.h #80

Closed trustednstaller closed 1 year ago

trustednstaller commented 1 year ago

When trying to build SymBuilder the following error occurs on compilation:

1>...\WinDbg-Samples\TargetComposition\SymBuilder\packages\Microsoft.Debugging.DataModel.CppLib.1.0.2\build\native\include\DbgModelClientEx.h(3576,5): error C2027: use of undefined type 'Debugger::DataModel::ClientEx::Object'
1>...\WinDbg-Samples\TargetComposition\SymBuilder\packages\Microsoft.Debugging.DataModel.CppLib.1.0.2\build\native\include\DbgModelClientEx.h(423,7): message : see declaration of 'Debugger::DataModel::ClientEx::Object'

Assuming it's something templately within SymBuilder that it's not liking as the latest DbgModelClientEx.h (same as the one used for SymBuilder) builds fine with a separate WinDbg extension. Specifically, PackValues is where the error points to.

Update: I only get this error with the latest build tools. 2019 build tools (v142) does not experience this issue. So the issue does indeed stem directly from DbgModelClientEx.h as with the new toolset, I cannot build other extensions with it.

trustednstaller commented 1 year ago

Update: setting the /permissive compiler flag to override /permissive- solves the above DbgModelClientEx.h issue. This should be noted somewhere for all uses w/ the client library otherwise headaches will ensue for those not versed in the template metaprogramming metaverse.