-
Notifications
You must be signed in to change notification settings - Fork 40
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
better support for mixed-mode assemblies, and sort of regression #29
Comments
About a year ago, the program finishes running but the output file itself contains a message about illegal byte code (the program itself catches some exceptions and put them into the output). Now it does not finish running. |
Note you can also run to completion, by skipping the |
This is 4.6.3 shipped by fedora... I'm okay to build it yourself, etc if you have things to try... |
Ping |
Still not working with 4.7.3:
|
Thought I'd write it here also (besides at the mono upstream issue page) - The mixed mode assembly I am trying to run not only does P/Invoke but also reverse P/Invoke : it calls native code from C# code, and also passes a C# delegate to the C native code as function pointers for the C native code to call back. So it is not surprising that MONO_TYPE_FNPTR happens though it is probably rare. |
The assertion for wine-mono seems different - it appears the domain is empty, or something. |
I tried passing --verbose to win32, and the assertions are different ( mono/mono#10268 ) . current mono's mixed-mode support seems to be better than wine-mono's, as far as how far --verbose goes. |
It no longer asserts within wine-mono with wine mono 6.0.0, but it still does not work correctly. The mixes mode assembly itself thrown an error that's caught (and catchable) by the app itself. |
The current behavior of win32 mono |
@madewokherd with wine migrating to PE I thought it us time to give it a try. Under wine + dotnet 2 it is works (as expected). With wine staging 7.12 and wine mono 7.3.0, now it seems to be getting properly into the C-half of the mixed mode assembly, and hitting on e of the self tests within the C half of it. It is throwing a Microsoft Visual C++ Runtime Library error, about "not enough space for thread data"! |
This is getting somewhat promising. |
The "not enough space for thread data" from within the application, is accompanied by heap:unsafe_heap_from_handle invalid handle 00000000 from wine. |
The binary is at
https://sourceforge.net/projects/hp-pxl-jetready/files/Microsoft%20Font%20Validator/old/win32.hybrid/win32.hybrid-bin-2016_02_08.zip/download
after unzip'ing, set WINEPREFIX differently, and do
It should produce a
arial.ttf.report.xml
in/tmp/
.You will find that it works correctly with genuine MS dotnet runtime (2.0), but fails with wine-mono; with wine-mono, it generates a half-written output file, and the following message:
I wrote about this just over a year ago on wine-devel; I think there is a sort of regression from then - about a year ago, when I tried this, I got some strange messages about illegal byte code with either wine-mono or wine32 mono under wine.
The application is semi- open-source - the
truetype.dll
which is a mixed mode assembly, was not opened; the rest is sort of what's on thehybrid.2016-05-06
branch of https://github.com/HinTak/Font-Validator . HTH. Please feel free to ask any question on it and I'll try to answer as best I can.Both https://sourceforge.net/projects/hp-pxl-jetready/ and https://github.com/HinTak/Font-Validator are mine.
The text was updated successfully, but these errors were encountered: