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 right over all this interesting code. Here's the P/Invoke call to GetProfilesDirectory
(a WinAPI function):
but after stepping into this call (F11), I don't find myself at FFF9BFD8
; rather, I land right in the GetProfilesDirectory
code:
There's also the [Managed to Native Transition]
entry on the stack, hinting at the fact that Visual Studio had just jumped over a whole bunch of code.
How can I step through this transition?
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:
You will then be able to double click on any (greyed out) line and a Disassembly
page will open with the code. Another example:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With