Step through the “managed to native transition” in Visual Studio?

前端 未结 2 801
迷失自我
迷失自我 2021-02-07 12:49

While trying to answer this question I decided I need to step through the marshalling process by hand, in the debugger view.

Unfortunately, Visual Studio seems to jump r

相关标签:
2条回答
  • 2021-02-07 13:28

    In Visual Studio, you cannot do that, i.e. there is no way to switch VS debugger into a mode to see what is going on during Managed to Native transition.

    You could try WinDbg + SOS/SOSEX instead as WinDBG does not hide these kinds of details from you. However, that part is either .NET or Windows internal abstraction, so even if you could see it, you might not get much, as to see what's actually going on there (besides the assembly), you will need private symbols for mscorlib, mscoreei, or clr dlls (pdb files).

    0 讨论(0)
  • 2021-02-07 13:39

    I'm surprised that no one has suggested that you show the external code in the debug window. If you right click on the [Native to Managed Transition] line and tick the Show External Code option, you will see exactly which methods are being called in the transition. This may give you a better idea. Here is an example:

    Display Native to Managed Transition

    You will then be able to double click on any (greyed out) line and a Disassembly page will open with the code. Another example:

    enter image description here

    0 讨论(0)
提交回复
热议问题