Comments (5)
What scenario are you trying to support? I tried to clarify the documentation on the page you linked, but I don't know if that will help you without understanding the scenario better.
from concordextensibilitysamples.
@tszirr the dispatcher will take care of finding the next implementation automatically. You just call the same API again. Something like:
class MyExpressionEvaluator : public IDkmLanguageExpressionEvaluator
{
HRESULT STDMETHODCALLTYPE EvaluateExpression(
_In_ Evaluation::DkmInspectionContext* pInspectionContext,
_In_ DkmWorkList* pWorkList,
_In_ Evaluation::DkmLanguageExpression* pExpression,
_In_ CallStack::DkmStackWalkFrame* pStackFrame,
_In_ IDkmCompletionRoutine<Evaluation::DkmEvaluateExpressionAsyncResult>* pCompletionRoutine
)
{
CComPtr<DkmLanguageExpression> pNewExpression;
TranslateExpression(pStackFrame, pExpression, &pNewExpression); // your code translates the expression into C++
return pInspectionContext->EvaluateExpression(pWorkList, pNewExpression, pStackFrame, pCompletionRoutine);
}
....
}
You may find that you need to create a new inspection context since the one provided for you will have the language id set to your language. But I think the C++ EE will just carry on in C++ mode anyway.
from concordextensibilitysamples.
Thank you, that is exactly the information I needed!
Could you clarify the section in the sense that the "first parameter" bit in the text usually refers to some kind of context or dispatcher object? I was very misled by matching IDkmExample
and DkmExample
, which led me to think that chaining only works if I explicitly get a pointer to the next implementation in the chain. (The concrete example given by Gregg is very helpful in that regard.) Thanks!
from concordextensibilitysamples.
@tszirr I tweaked the wording a bit. Let me know if that sounds more clear.
from concordextensibilitysamples.
Great, now it is more than clear. Thanks a lot!
from concordextensibilitysamples.
Related Issues (20)
- How to change the value of an argument at a breakpoint?
- Breaking changes HOT 1
- How to enable debugging client code in Blazor
- "IEnumerable Visualizer" support for our language HOT 6
- Instructions in code are not correct. HOT 1
- Debugging instructions may need clarification with the latest VS 2022 & Child Process Power Tool since I couldn't get it to work HOT 1
- IEnumerable Visualizer shows properties that are marked with attribute to hide them in the debugger HOT 1
- Obtaining debug symbol paths from options HOT 3
- Is it possible to run certain threads when Debug Engine stopped in "break mode"? HOT 1
- .Net 8 problems HOT 1
- Extending call-stack window with full ReturnStackFrame HOT 1
- Custom breakpoints, inactive when set before module loads
- Feature request - add Interfaces for all DKM for easier testing and mocking
- Recent VsDbg versions missing System.Threading.Tasks.dll assembly HOT 4
- Announcement: New releases of C# vsdbg HOT 7
- Unable to load custom VsDbg extensions in linux/WSL using VS 17.7 Preview HOT 6
- Debugger UI integration
- Unable to use IrisExtension following the wiki HOT 3
- $CALLSTACK and $CALLER in Debugger Trace points HOT 4
- Feature request: Allow other .NET languages to participate in Edit and Continue/Hot Reload HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from concordextensibilitysamples.