https://bugs.winehq.org/show_bug.cgi?id=52131
--- Comment #20 from Eric eric.wheez@gmail.com --- OK! I think I'm close:
I got better at using Improved dotNET Tracer for Windows (I found the "on/off" button to specify when I want to start/stop tracing methods). I traced
On a Windows computer, I traced RMS Express calculating "SFI" when... - input frequency is 55000 (which runs fine in wine-mono) - input frequency is 54000 (crashes in wine-mono).
These methods pop up on Windows when input frequency is 54000 (but don't appear when input frequency is 55000): ---- snip ---- [PropagationPrediction.dll] Function compiled, GridSquareToDecimalDegrees, Module : PropagationPrediction.dll, Parent Class : PropagationPrediction.PredictionClass, Method ID : 0x844AD78, Method Token : 0600000D, CFF explorer index : 13, Exception Thrown, Exception type : System.Runtime.InteropServices.SEHException, Exception was thrown in method, Parent class : PropagationPrediction.PredictionClass, method : PredictPropagation, Method Token : 06000009, CFF explorer index : 9,
[WinlinkInterop.dll] Function compiled, Finalize, Module : WinlinkInterop.dll, Parent Class : WinlinkInterop.SFIhelper, Method ID : 0x93F4D3C, Method Token : 0600002F, CFF explorer index : 47, ---- snip ----
I bet the crash isn't from wine-mono calculating small value frequencies (in PropagationPrediction.PredictionClass.CreateDVOACapQuery) any differently than on Windows.
So, I think that both dotnet/Windows and wine-mono probably handle the calculation the same but some exceptions get thrown by dvoa.dll as 'normal' behavior in this case and dotnet somehow handles the exceptions, but wine-mono doesn't know how to yet.