-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reverse PInvokes do not call TraceCall on non-x86 platforms #47037
Comments
Tagging subscribers to this area: @tommcdon Issue DetailsDescriptionFiled after discussion in #46238 (comment) There is no call to Example program:
On x86 a breakpoint in
|
I believe I am also seeing this exact issue in my new .Net 5 x64 project. I have a thread in my C++ code that sends data back to my .Net UI. I can't debug the reverse Pinvoked .Net method. |
Yes, this should be fixed in .NET 6 |
Fixed by #46238 |
@jkoritzinsky Great to hear. Thank you. |
Description
Filed after discussion in #46238 (comment)
There is no call to
Debugger::TraceCall
for reverse pinvokes on non-x86 platforms. This means when doing mixed mode debugging on x64, if a breakpoint is set in a reverse pinvoked function as the first call on a new thread the breakpoint will not be hit.Example program:
On x86 a breakpoint in
CallMe
will be hit in mixed mode debugging, on x64 it will not. Managed debugging hits the breakpoint for both x86 and x64. Similarly, if the reverse pinvoke is done on the current managed thread it will work for both x86 and x64 even with mixed mode debugging.The text was updated successfully, but these errors were encountered: