Giter VIP home page Giter VIP logo

binarydist's People

Contributors

glrodgers avatar nattynarwhal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

binarydist's Issues

TimeZoneInfo doesn't work

  • AIX is simple - it just needs to be pointed to /usr/share/lib/zoneinfo instead of every other Unix's /usr/share/zoneinfo.

  • i is much trickier - it lacks zoneinfo entirely; setting TZ to an explicit value. System values can be found with WRKOBJ QSYS/*ALL *TIMZON or WRKTIMZON. Some ideas:

    • Generate a zoneinfo database from the system time zone values on the native side. This means no framework changes and system integration, but a program to generate values will need to be maintained.

    • Modify the framework to call into the ILE and convert time zone values there. Will require either ugly changes in the middle of normal code, or perhaps even our own framework profile if we have to keep adding these.

    • The nice thing about these two approaches is that they'll behave in line with the rest of the system, operating on the same values.

    • Ship a copy of zoneinfo with our builds and point the library to use that. Portable, but a bit hackish.

Runtime allows null dereferences to happen

The runtime seems to allow null dereferences to happen. Can be mitigated with MONO_DEBUG="explicit-null-checks".

using System;
using System.Linq;
using System.Collections.Generic;

class Test {
        static void Broken() {
                Dictionary<int, int> d = null;
                Console.WriteLine(d == null);
                Console.WriteLine(d.Count);
        }

        static void Main() {
                Broken();
        }
}

Results, no explicit-null-check:

True
0

Results, with

True

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
  at Test.Broken () [0x0000b] in <a7059fdc15e2483886edcd43bef97db4>:0
  at Test.Main () [0x00000] in <a7059fdc15e2483886edcd43bef97db4>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object.
  at Test.Broken () [0x0000b] in <a7059fdc15e2483886edcd43bef97db4>:0
  at Test.Main () [0x00000] in <a7059fdc/opt/mono/bin/mono test.exe    

Another good example would be to access the "Keys" members of a Dictionary - this can expose issues with gshared, which can be disabled with --optimize=-gshared.

Spreadsheetlight causes error with System.IO.Packaging

Using Spreadsheet light which uses DocumentFormat.OpenXml.dll which uses System.IO.Packaging.

EXE builds but blows up instantiating new spreadsheet. Sounds like System.IO.Packaging needs a little testing.

Ex: var sl = new SLDocument();

Causes below error:

Error: /opt/mono/lib/../lib/libMonoPosixHelper.so at (wrapper managed-to-nat
ive) zipsharp.NativeZip.zipOpen2_64(string,int,intptr,zipsharp.ZlibFileFuncDe
f64&)
at zipsharp.NativeZip.OpenArchive64 (zipsharp.ZlibFileFuncDef64 funcDef, zi
psharp.Append append) [0x00000] in :0
at zipsharp.ZipArchive..ctor (System.IO.Stream stream, zipsharp.Append appe
nd, System.Boolean ownsStream) [0x0003f] in <a97c64fb8d5748c8b21ab3bd4fa56a16

:0
at System.IO.Packaging.ZipPackage.FlushCore () [0x00073] in :0
at System.IO.Packaging.Package.Flush () [0x00041] in <a97c64fb8d5748c8b21ab
3bd4fa56a16>:0
at System.IO.Packaging.ZipPartStream.Flush () [0x00006] in <a97c64fb8d5748c
8b21ab3bd4fa56a16>:0
at System.IO.StreamWriter.Flush (System.Boolean flushStream, System.Boolean
flushEncoder) [0x000b1] in <6a799ddc80574ae4a394013133ece9c2>:0
at System.IO.StreamWriter.Dispose (System.Boolean disposing) [0x00024] in <
6a799ddc80574ae4a394013133ece9c2>:0
at System.IO.StreamWriter.Close () [0x00000] in <6a799ddc80574ae4a394013133
ece9c2>:0
at System.Xml.XmlTextWriter.Close () [0x00019] in <2f5060724de44fda88f51437
ad0d0c7e>:0
at System.Xml.XmlWriter.Dispose (System.Boolean disposing) [0x00012] in <2f
5060724de44fda88f51437ad0d0c7e>:0
at System.Xml.XmlWriter.Dispose () [0x00000] in <2f5060724de44fda88f51437ad
0d0c7e>:0
at System.IO.Packaging.Package.WriteRelationships (System.Collections.Gener
ic.Dictionary`2[TKey,TValue] relationships, System.IO.Stream stream) [0x00196
] in :0
at System.IO.Packaging.Package.CreateRelationship (System.Uri targetUri, Sy
stem.IO.Packaging.TargetMode targetMode, System.String relationshipType, Syst
em.String id, System.Boolean loading) [0x000bf] in :0
at System.IO.Packaging.Package.CreateRelationship (System.Uri targetUri, Sy
stem.IO.Packaging.TargetMode targetMode, System.String relationshipType, Syst
em.String id) [0x00000] in :0
at System.IO.Packaging.Package.CreateRelationship (System.Uri targetUri, Sy
stem.IO.Packaging.TargetMode targetMode, System.String relationshipType) [0x0
0000] in :0
at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.CreateRelationship (Syst
em.Uri targetUri, System.IO.Packaging.TargetMode targetMode, System.String re
lationshipType) [0x0000c] in :0
at DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.AttachChild (Docum
entFormat.OpenXml.Packaging.OpenXmlPart part, System.String rId) [0x00011] in
:0
at DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.InitPart[T] (T new
Part, System.String contentType, System.String id) [0x000a4] in <a7316bf1edfd
42b484fda64cef0dcf01>:0
at DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.InitPart[T] (T new
Part, System.String contentType) [0x00000] in <a7316bf1edfd42b484fda64cef0dcf
01>:0
at DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.AddWorkbookPart ()
[0x0000e] in :0
at SpreadsheetLight.SLDocument..ctor () [0x00076] in <e3bbaa7107764f5486935
16263be2430>:0
at MonoDbToExcel.Program.Main (System.String[] args) [0x00054] in <db04ed06
553a401cac5bad7724ee7d25>:0

AIX takes a long time to start child processes

This is due to mono/mono#6555. When your file descriptor (NOFILES) limit is at unlimited or a similarly high number, it can take a very long time (30 minutes worst case) for Mono to actually start the process. This is due to file descriptor closing the runtime does after forking as the child but before execing the new process.

This problem manifests itself on the CI server for AIX when running the test suite driver.

To remedy this on AIX, you can either set a limit of the number of files the user or system can open, or you can drop the amount of file handles opened for your session as long as it's open by running ulimit -n $NUMBER_OF_DESCRIPTORS - 20000 is a reasonable value. (Ensure that the value you lower is to is below your current hard FD limit.) You can use ulimit -n without a parameter to view the current limit.

This doesn't affect PASE due to it having a hard 2000 FD limit, which isn't enough to make fork-and-exec for Mono noticeably slower.

investigate deadlocks in System and corlib tests

MonoTests.System.Diagnostics.ProcessTest.StandardInputWrite and ***** MonoTests.System.Threading.InterlockedTest.TestCompareExchange_Dbl (likely that family of tests) cause the runtime to lock up and occasionally spawn a zombie. The root causes of this should be investigated, and perhaps those tests skipped, because they prevent CI from running and displaying the results of tests for those components when they inevitably have to be stopped.

DateTime.Now started failing at 1am on Daylight Savings Time 3/10/2019

Last line of code in this section started blowing up at 1am Central on Daylight Savings Time. Technically it's probably not needed to convert DateTime.Now because the TZ environment variable set works, but I use similar code later in a directory list to convert date/time on files to local timezone and it works fine. The error seems to have something to do with using the custom TimeZoneInfo object against DateTime.Now at daylight savings time. You can't make this stuff up :-)

Using MONO SAVF - 10/14/18 Binary Snapshot. Been holding to this version for now.

Sample code you can copy to any C# console app and run. Last line will fail. I'm going to guess the problem self-resolves later on 3/10/2019 on by 3/11/2019 if it's daylight savings time related.

// Note: You MUST set up TZ before calling any date/time functions.
Environment.SetEnvironmentVariable("TZ", "America/Chicago");
Console.WriteLine("TimeZone: " + "America/Chicago");
Console.WriteLine("Current time once TimeZone TZ env variable set: " + DateTime.Now);

// Getting the current system timezone info.
TimeZoneInfo tz = TimeZoneInfo.Local;
Console.WriteLine("TimeZoneInfo.Local Offset:" + tz.BaseUtcOffset);
Console.WriteLine("DateTime.Now:" + DateTime.Now.ToString());

// Below line fails. It started causing errors on Daylight savings time day. 3/10/2019 at 1am.
// TODO - test this scenario at some point. See if it works the day after daylight savings. Might be a Mono date bug possibly ??
// DateTime.Now by itself seems to work though as does using the same timezone def against file attribute dates. Wierd.
Console.WriteLine("TimeonInfo.Local UTC Time:" + TimeZoneInfo.ConvertTime(DateTime.Now, tz).ToString());

C# stack error:
Unhandled Exception:
System.ArgumentException: dateTime parameter is an invalid time
at System.TimeZoneInfo.ConvertTime (System.DateTime dateTime, System.TimeZo
neInfo sourceTimeZone, System.TimeZoneInfo destinationTimeZone) [0x00074] in
<6a799ddc80574ae4a394013133ece9c2>:0
at System.TimeZoneInfo.ConvertTime (System.DateTime dateTime, System.TimeZo
neInfo destinationTimeZone) [0x0001d] in <6a799ddc80574ae4a394013133ece9c2>:0

at MonoDateTester1.Program.Main (System.String[] args) [0x0007e] in <44d426
0c30374da59dc80a0246a96acd>:0

managed rijndael is broken in big endian

see mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs, tried an endian swap in a few places and it moved the problem around. should find the lynchpins. I suspect this will get replaced with a CoreFX version anyways, and AFAIK, that relies on BTLS when possible instead...

Extend P/Invoke dlopen code to fudge guesses for AIX libraries

The library loader will try suffixes - depending on platform, it will guess DLL for Windows, dylib for Mac OS, and so for any other Unix. While libraries on AIX could end in so, they're more likely to be encased in an archive. As such, the library loader should be extended to deal with AIX by trying these combinations, when given a library with no suffix and no DllMap entry:

  • libexample.so
  • libexample.a(libexample.so) (this requires a sprintf instead of just appending; but this is generally how autotools sets up built libraries...)
  • libexample.a(shr_64.so) (when build as PPC64 like we are)
  • libexample.a(shr.so)

Make #ifdefs only relevant to i controlled by a flag

This would clarify intent for what's needed for i vs. AIX; and lets us build a marginally better build for AIX.

This would likely consist of considering _AIX defines to say, __PASE__. Because i tooling is the same as AIX and thus won't have a flag; and since we cross-compile from AIX anyway, we'd have to pass a flag manually - but adding -D__PASE__ to ./configure is no problem.

RuntimeInformation could be better

Mono's implementation is ignorant of anything other than WebAssembly/Windows/macOS/Linux, and x86/amd64

Even with this fixed, you'd need to get AIX/OS400 entries added for OSPlatform in CoreFX, wire it up to Mono, and then add Architecture enum entries for PowerPC.

Get sigaltstack working

Would make debugging easier. I think the guard pages have a problem; perhaps we don't pass the right flags to mmap?

Benchmark Mono against J9 and other runtimes

We should apply Debian's language shootout and adapt it to use J9. My initial testing by running the C# and Java nbody tests show that Mono is twice as fast as J9 (in AIX on POWER7, J9 8.0 64-bit, assuming both runtimes' defaults) in it, despite not having optimizations for CPUs post-POWER5. We should use the normal benchmark runner, but it's not very well documented; we'll have to play with it further some day.

If we can gather the data, Kyte from upstream is very interested in seeing our data and what tools we can use in AIX or PASE for profiling.

Exceptions in static ctors can cause runtime to bomb out

This is a test case in the mini regression test suite; isolated for the sake of simpler stack traces and debugging. When executing, it jumps to 0x0 somehow and crashes with a SIGILL.

using System;

public class Offending {
        public static int i;

        static Offending() {
                throw new Exception("Broken");
        }

        public static void Hello() {
                Console.WriteLine(i);
        }
}

public class Entry {
        public static void Main() {
                Offending.Hello();
        }
}

When running under gdb:

(gdb) run
Starting program: /opt/mono/bin/mono -v --trace=all /home/calvin/exception.exe
[New Thread 1]
[New Thread 258]
converting method void System.OutOfMemoryException:.ctor (string)
Method void System.OutOfMemoryException:.ctor (string) emitted at 700000000083600 to 7000000000836ec (code length 236) [exception.exe]
converting method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr) emitted at 700000000083780 to 7000000000839f0 (code length 624) [exception.exe]
[1: 0.00000 0] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 0.00010 1] ENTER: System.OutOfMemoryException:.ctor (string)() ip: 700000000083934
converting method void System.SystemException:.ctor (string)
Method void System.SystemException:.ctor (string) emitted at 7000000000839f0 to 700000000083adc (code length 236) [exception.exe]
[1: 0.00052 2] ENTER: System.SystemException:.ctor (string)() ip: 700000000083678
converting method void System.Exception:.ctor (string)
Method void System.Exception:.ctor (string) emitted at 700000000083b10 to 700000000083c10 (code length 256) [exception.exe]
converting method void System.Exception:.cctor ()
Method void System.Exception:.cctor () emitted at 700000000083c40 to 700000000083d18 (code length 216) [exception.exe]
converting method (wrapper runtime-invoke) object object:runtime_invoke_void (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object object:runtime_invoke_void (object,intptr,intptr,intptr) emitted at 700000000083d48 to 700000000083fa0 (code length 600) [exception.exe]
[1: 0.00171 3] ENTER: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 0.00181 4] ENTER: System.Exception:.cctor ()() ip: 700000000083e54
converting method (wrapper alloc) object object:AllocSmall (intptr,intptr)
Method (wrapper alloc) object object:AllocSmall (intptr,intptr) emitted at 700000000083fd0 to 7000000000841a4 (code length 468) [exception.exe]
[1: 0.00227 5] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000083cbc
[1: 0.00233 5] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Object:7000000004000f0]
[1: 0.00238 4] LEAVE: System.Exception:.cctor ()
[1: 0.00240 3] LEAVE: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)[OBJECT:0]
[1: 0.00244 3] ENTER: System.Exception:.ctor (string)() ip: 700000000083a68
converting method void System.Exception:Init ()
Method void System.Exception:Init () emitted at 7000000000841a8 to 7000000000842d4 (code length 300) [exception.exe]
[1: 0.00277 4] ENTER: System.Exception:Init ()() ip: 700000000083b88
[1: 0.00279 5] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000084250
[1: 0.00281 5] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Runtime.Serialization.SafeSerializationManager:700000000400100]
[1: 0.00285 4] LEAVE: System.Exception:Init ()
[1: 0.00287 3] LEAVE: System.Exception:.ctor (string)
converting method void System.Exception:SetErrorCode (int)
Method void System.Exception:SetErrorCode (int) emitted at 7000000000842d8 to 700000000084374 (code length 156) [exception.exe]
[1: 0.00304 3] ENTER: System.Exception:SetErrorCode (int)() ip: 700000000083a98
[1: 0.00306 3] LEAVE: System.Exception:SetErrorCode (int)
[1: 0.00308 2] LEAVE: System.SystemException:.ctor (string)
[1: 0.00310 2] ENTER: System.Exception:SetErrorCode (int)() ip: 7000000000836a8
[1: 0.00312 2] LEAVE: System.Exception:SetErrorCode (int)
[1: 0.00314 1] LEAVE: System.OutOfMemoryException:.ctor (string)
[1: 0.00316 0] LEAVE: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)[OBJECT:0]
converting method void System.NullReferenceException:.ctor (string)
Method void System.NullReferenceException:.ctor (string) emitted at 700000000084378 to 700000000084444 (code length 204) [exception.exe]
[1: 0.00342 0] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 0.00344 1] ENTER: System.NullReferenceException:.ctor (string)() ip: 700000000083934
[1: 0.00346 2] ENTER: System.SystemException:.ctor (string)() ip: 7000000000843f0
[1: 0.00348 3] ENTER: System.Exception:.ctor (string)() ip: 700000000083a68
[1: 0.00350 4] ENTER: System.Exception:Init ()() ip: 700000000083b88
[1: 0.00352 5] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000084250
[1: 0.00354 5] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Runtime.Serialization.SafeSerializationManager:700000000400250]
[1: 0.00356 4] LEAVE: System.Exception:Init ()
[1: 0.00358 3] LEAVE: System.Exception:.ctor (string)
[1: 0.00360 3] ENTER: System.Exception:SetErrorCode (int)() ip: 700000000083a98
[1: 0.00363 3] LEAVE: System.Exception:SetErrorCode (int)
[1: 0.00365 2] LEAVE: System.SystemException:.ctor (string)
[1: 0.00366 1] LEAVE: System.NullReferenceException:.ctor (string)
[1: 0.00368 0] LEAVE: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)[OBJECT:0]
converting method void System.StackOverflowException:.ctor (string)
Method void System.StackOverflowException:.ctor (string) emitted at 700000000084448 to 700000000084514 (code length 204) [exception.exe]
[1: 0.00393 0] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 0.00395 1] ENTER: System.StackOverflowException:.ctor (string)() ip: 700000000083934
[1: 0.00397 2] ENTER: System.SystemException:.ctor (string)() ip: 7000000000844c0
[1: 0.00399 3] ENTER: System.Exception:.ctor (string)() ip: 700000000083a68
[1: 0.00401 4] ENTER: System.Exception:Init ()() ip: 700000000083b88
[1: 0.00403 5] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000084250
[1: 0.00405 5] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Runtime.Serialization.SafeSerializationManager:700000000400388]
[1: 0.00407 4] LEAVE: System.Exception:Init ()
[1: 0.00409 3] LEAVE: System.Exception:.ctor (string)
[1: 0.00411 3] ENTER: System.Exception:SetErrorCode (int)() ip: 700000000083a98
[1: 0.00413 3] LEAVE: System.Exception:SetErrorCode (int)
[1: 0.00415 2] LEAVE: System.SystemException:.ctor (string)
[1: 0.00417 1] LEAVE: System.StackOverflowException:.ctor (string)
[1: 0.00419 0] LEAVE: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)[OBJECT:0]
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
[New Thread 515]
converting method void Entry:Main ()
Method void Entry:Main () emitted at 700000000084518 to 7000000000845c4 (code length 172) [exception.exe]
converting method (wrapper runtime-invoke) object object:runtime_invoke_void (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object object:runtime_invoke_void (object,intptr,intptr,intptr) emitted at 7000000000845f8 to 700000000084850 (code length 600) [exception.exe]
[1: 26.06251 0] ENTER: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.06262 1] ENTER: Entry:Main ()() ip: 700000000084794
converting method void Offending:Hello ()
Method void Offending:Hello () emitted at 700000000084880 to 70000000008498c (code length 268) [exception.exe]
converting method void Offending:.cctor ()
Method void Offending:.cctor () emitted at 7000000000849f0 to 700000000084b08 (code length 280) [exception.exe]
[1: 26.06348 2] ENTER: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.06358 3] ENTER: Offending:.cctor ()() ip: 700000000084704
converting method (wrapper managed-to-native) object object:__icall_wrapper_mono_helper_ldstr (intptr,intptr)
Method (wrapper managed-to-native) object object:__icall_wrapper_mono_helper_ldstr (intptr,intptr) emitted at 700000000084b38 to 700000000084de8 (code length 688) [exception.exe]
[1: 26.06402 4] ENTER: (wrapper managed-to-native) object:__icall_wrapper_mono_helper_ldstr (intptr,intptr)() ip: 700000000084a6c
[1: 26.06419 4] LEAVE: (wrapper managed-to-native) object:__icall_wrapper_mono_helper_ldstr (intptr,intptr)[System.String:7000000000ec130]
[1: 26.06435 4] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.06444 5] ENTER: System.Exception:.ctor (string)() ip: 700000000083934
[1: 26.06453 6] ENTER: System.Exception:Init ()() ip: 700000000083b88
[1: 26.06462 7] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000084250
[1: 26.06471 7] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Runtime.Serialization.SafeSerializationManager:700000000400540]
[1: 26.06481 6] LEAVE: System.Exception:Init ()
[1: 26.06490 5] LEAVE: System.Exception:.ctor (string)
[1: 26.06500 4] LEAVE: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)[OBJECT:0]
converting method string System.Exception:get_Message ()
Method string System.Exception:get_Message () emitted at 700000000084de8 to 700000000084fa4 (code length 444) [exception.exe]
converting method (wrapper runtime-invoke) object <Module>:runtime_invoke_object__this__ (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object <Module>:runtime_invoke_object__this__ (object,intptr,intptr,intptr) emitted at 700000000085038 to 7000000000852a0 (code length 616) [exception.exe]
[1: 26.06678 4] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_object__this__ (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.06686 5] ENTER: System.Exception:get_Message ()() ip: 700000000085148
[1: 26.06695 5] LEAVE: System.Exception:get_Message ()[System.String:7000000000ec130]
[1: 26.06703 4] LEAVE: (wrapper runtime-invoke) <Module>:runtime_invoke_object__this__ (object,intptr,intptr,intptr)[System.String:7000000000ec130]
[1:] EXCEPTION handling: System.Exception: Broken
EXCEPTION: catch found at clause 0 of (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)
[1: 26.06736 3] LEAVE: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)[OBJECT:0]
converting method void System.TypeInitializationException:.ctor (string,System.Exception)
Method void System.TypeInitializationException:.ctor (string,System.Exception) emitted at 7000000000852a0 to 700000000085454 (code length 436) [exception.exe]
converting method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object_object (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object_object (object,intptr,intptr,intptr) emitted at 700000000085488 to 700000000085700 (code length 632) [exception.exe]
[1: 26.06832 3] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object_object (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.06841 4] ENTER: System.TypeInitializationException:.ctor (string,System.Exception)() ip: 700000000085640
converting method (wrapper alloc) object object:AllocVector (intptr,intptr)
Method (wrapper alloc) object object:AllocVector (intptr,intptr) emitted at 700000000085730 to 700000000085adc (code length 940) [exception.exe]
[1: 26.06899 5] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000085330
[1: 26.06907 5] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Object[]:700000000400748]
converting method (wrapper stelemref) void object:virt_stelemref_object (intptr,object)
Method (wrapper stelemref) void object:virt_stelemref_object (intptr,object) emitted at 700000000085ae0 to 700000000085c00 (code length 288) [exception.exe]
[1: 26.06943 5] ENTER: (wrapper stelemref) object:virt_stelemref_object (intptr,object)() ip: 700000000085354
[1: 26.06951 5] LEAVE: (wrapper stelemref) object:virt_stelemref_object (intptr,object)
converting method string System.Environment:GetResourceString (string,object[])
Method string System.Environment:GetResourceString (string,object[]) emitted at 700000000085c00 to 700000000085cec (code length 236) [exception.exe]
[1: 26.06991 5] ENTER: System.Environment:GetResourceString (string,object[])() ip: 700000000085390
converting method System.Globalization.CultureInfo System.Globalization.CultureInfo:get_InvariantCulture ()
converting method void System.Globalization.CultureInfo:.cctor ()
Method void System.Globalization.CultureInfo:.cctor () emitted at 700000000085d50 to 700000000085eb0 (code length 352) [exception.exe]
[1: 26.07054 6] ENTER: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.07063 7] ENTER: System.Globalization.CultureInfo:.cctor ()() ip: 700000000083e54
[1: 26.07071 8] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000085dcc
[1: 26.07079 8] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Globalization.CultureInfo:700000000400770]
converting method void System.Globalization.CultureInfo:.ctor (int,bool,bool)
Method void System.Globalization.CultureInfo:.ctor (int,bool,bool) emitted at 700000000085f10 to 70000000008650c (code length 1532) [exception.exe]
[1: 26.07227 8] ENTER: System.Globalization.CultureInfo:.ctor (int,bool,bool)() ip: 700000000085e00
converting method System.Globalization.CultureData System.Globalization.CultureData:get_Invariant ()
Method System.Globalization.CultureData System.Globalization.CultureData:get_Invariant () emitted at 7000000000866f0 to 700000000086eac (code length 1980) [exception.exe]
[1: 26.07359 9] ENTER: System.Globalization.CultureData:get_Invariant ()() ip: 700000000085fec
[1: 26.07367 10] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 7000000000867ac
[1: 26.07375 10] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Globalization.CultureData:700000000400988]
[1: 26.07384 10] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 7000000000869c0
[1: 26.07392 10] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000400a10]
converting method (wrapper stelemref) void object:virt_stelemref_sealed_class (intptr,object)
Method (wrapper stelemref) void object:virt_stelemref_sealed_class (intptr,object) emitted at 700000000086eb0 to 700000000087064 (code length 436) [exception.exe]
[1: 26.07434 10] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000869f4
[1: 26.07443 10] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07451 10] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000086a74
[1: 26.07459 10] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000400a38]
[1: 26.07468 10] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000086aa8
[1: 26.07476 10] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07484 10] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000086ae0
[1: 26.07492 10] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07500 10] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000086b18
[1: 26.07508 10] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07510 10] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000086b50
[1: 26.07512 10] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07514 10] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000086bdc
[1: 26.07516 10] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Int32[]:700000000400a78]
[1: 26.07518 10] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000086c6c
[1: 26.07520 10] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Globalization.CalendarData[]:700000000400aa0]
converting method (wrapper managed-to-native) void object:__icall_wrapper_mono_generic_class_init (intptr)
Method (wrapper managed-to-native) void object:__icall_wrapper_mono_generic_class_init (intptr) emitted at 700000000087068 to 7000000000872fc (code length 660) [exception.exe]
[1: 26.07538 10] ENTER: (wrapper managed-to-native) object:__icall_wrapper_mono_generic_class_init (intptr)() ip: 700000000086cf8
converting method void System.Globalization.CalendarData:.cctor ()
Method void System.Globalization.CalendarData:.cctor () emitted at 700000000087300 to 70000000008869c (code length 5020) [exception.exe]
[1: 26.07664 11] ENTER: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.07666 12] ENTER: System.Globalization.CalendarData:.cctor ()() ip: 700000000083e54
[1: 26.07669 13] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 70000000008737c
[1: 26.07671 13] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Globalization.CalendarData:700000000402338]
converting method void System.Globalization.CalendarData:.ctor ()
Method void System.Globalization.CalendarData:.ctor () emitted at 7000000000886d0 to 700000000088768 (code length 152) [exception.exe]
[1: 26.07685 13] ENTER: System.Globalization.CalendarData:.ctor ()() ip: 7000000000873a4
[1: 26.07687 13] LEAVE: System.Globalization.CalendarData:.ctor ()
[1: 26.07690 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087458
[1: 26.07691 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:7000000004023d8]
[1: 26.07693 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 70000000008748c
[1: 26.07694 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07696 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000874c4
[1: 26.07698 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07699 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087540
[1: 26.07701 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402408]
[1: 26.07702 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087574
[1: 26.07704 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07706 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 7000000000875f0
[1: 26.07707 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402430]
[1: 26.07709 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087624
[1: 26.07710 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07712 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087704
[1: 26.07713 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402458]
[1: 26.07715 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087738
[1: 26.07716 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07718 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 7000000000877b4
[1: 26.07720 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402480]
[1: 26.07721 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000877e8
[1: 26.07723 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07725 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087864
[1: 26.07726 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:7000000004024a8]
[1: 26.07728 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087898
[1: 26.07729 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07731 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087914
[1: 26.07732 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:7000000004024d0]
[1: 26.07734 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087948
[1: 26.07735 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07737 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087980
[1: 26.07738 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07740 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000879b8
[1: 26.07741 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07743 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000879f0
[1: 26.07744 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07746 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087a28
[1: 26.07747 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.07748 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087a60
[1: 26.07750 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12458 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087a98
[1: 26.12467 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12476 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087b14
[1: 26.12484 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402528]
[1: 26.12492 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087b48
[1: 26.12500 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12508 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087b80
[1: 26.12516 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12524 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087bb8
[1: 26.12532 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12540 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087bf0
[1: 26.12548 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12556 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087c28
[1: 26.12564 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12572 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087c60
[1: 26.12580 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12588 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087c98
[1: 26.12596 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12598 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087d14
[1: 26.12600 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402580]
[1: 26.12602 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087d48
[1: 26.12604 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12606 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087d80
[1: 26.12608 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12609 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087db8
[1: 26.12611 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12613 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087df0
[1: 26.12615 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12617 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087e28
[1: 26.12619 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12620 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087e60
[1: 26.12622 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12624 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087e98
[1: 26.12626 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12628 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000087f14
[1: 26.12629 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:7000000004025d8]
[1: 26.12631 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087f48
[1: 26.12633 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12635 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087f80
[1: 26.12636 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12638 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087fb8
[1: 26.12639 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12641 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000087ff0
[1: 26.12642 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12644 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088028
[1: 26.12645 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12646 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088060
[1: 26.12648 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12649 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088098
[1: 26.12651 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12652 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000880d0
[1: 26.12653 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12655 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088108
[1: 26.12656 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12658 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088140
[1: 26.12659 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12661 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088178
[1: 26.12662 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12663 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000881b0
[1: 26.12665 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12666 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000881e8
[1: 26.12667 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12669 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000088264
[1: 26.12671 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402660]
[1: 26.12673 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088298
[1: 26.12674 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12675 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000882d0
[1: 26.12677 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12678 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088308
[1: 26.12680 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12681 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088340
[1: 26.12682 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12684 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088378
[1: 26.12685 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12687 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000883b0
[1: 26.12688 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.12689 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000883e8
[1: 26.12691 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20568 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088420
[1: 26.20576 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20584 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088458
[1: 26.20592 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20600 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088490
[1: 26.20608 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20616 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000884c8
[1: 26.20624 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20632 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088500
[1: 26.20640 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20648 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000088538
[1: 26.20656 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.20664 12] LEAVE: System.Globalization.CalendarData:.cctor ()
[1: 26.20672 11] LEAVE: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)[OBJECT:0]
[1: 26.20681 10] LEAVE: (wrapper managed-to-native) object:__icall_wrapper_mono_generic_class_init (intptr)
converting method (wrapper stelemref) void object:virt_stelemref_class_small_idepth (intptr,object)
Method (wrapper stelemref) void object:virt_stelemref_class_small_idepth (intptr,object) emitted at 700000000088768 to 70000000008893c (code length 468) [exception.exe]
[1: 26.20765 10] ENTER: (wrapper stelemref) object:virt_stelemref_class_small_idepth (intptr,object)() ip: 700000000086d24
[1: 26.20773 10] LEAVE: (wrapper stelemref) object:virt_stelemref_class_small_idepth (intptr,object)
[1: 26.20784 9] LEAVE: System.Globalization.CultureData:get_Invariant ()[System.Globalization.CultureData:700000000400988]
converting method void System.Globalization.CultureInfo:ConstructInvariant (bool)
Method void System.Globalization.CultureInfo:ConstructInvariant (bool) emitted at 700000000088940 to 700000000088df0 (code length 1200) [exception.exe]
[1: 26.20846 9] ENTER: System.Globalization.CultureInfo:ConstructInvariant (bool)() ip: 700000000086054
converting method System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo:get_InvariantInfo ()
Method System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo:get_InvariantInfo () emitted at 700000000088e80 to 700000000089000 (code length 384) [exception.exe]
[1: 26.20893 10] ENTER: System.Globalization.NumberFormatInfo:get_InvariantInfo ()() ip: 7000000000889c0
[1: 26.20901 11] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000088f1c
[1: 26.20910 11] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Globalization.NumberFormatInfo:7000000004027b0]
converting method void System.Globalization.NumberFormatInfo:.ctor ()
Method void System.Globalization.NumberFormatInfo:.ctor () emitted at 700000000089060 to 700000000089118 (code length 184) [exception.exe]
[1: 26.20943 11] ENTER: System.Globalization.NumberFormatInfo:.ctor ()() ip: 700000000088f44
converting method void System.Globalization.NumberFormatInfo:.ctor (System.Globalization.CultureData)
Method void System.Globalization.NumberFormatInfo:.ctor (System.Globalization.CultureData) emitted at 700000000089148 to 700000000089c90 (code length 2888) [exception.exe]
[1: 26.21034 12] ENTER: System.Globalization.NumberFormatInfo:.ctor (System.Globalization.CultureData)() ip: 7000000000890d4
[1: 26.21042 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 7000000000891d8
[1: 26.21051 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Int32[]:700000000402af0]
[1: 26.21059 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 700000000089264
[1: 26.21067 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Int32[]:700000000402b18]
[1: 26.21076 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 7000000000892f0
[1: 26.21084 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Int32[]:700000000402b40]
[1: 26.21093 13] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 7000000000898f4
[1: 26.21101 13] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.String[]:700000000402b68]
[1: 26.21109 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089928
[1: 26.21117 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21125 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089960
[1: 26.21133 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21148 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089998
[1: 26.21156 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21164 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 7000000000899d0
[1: 26.21172 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21180 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089a08
[1: 26.21188 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21196 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089a40
[1: 26.21204 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21212 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089a78
[1: 26.21220 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21228 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089ab0
[1: 26.21233 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21236 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089ae8
[1: 26.21238 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21241 13] ENTER: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)() ip: 700000000089b20
[1: 26.21243 13] LEAVE: (wrapper stelemref) object:virt_stelemref_sealed_class (intptr,object)
[1: 26.21245 12] LEAVE: System.Globalization.NumberFormatInfo:.ctor (System.Globalization.CultureData)
[1: 26.21247 11] LEAVE: System.Globalization.NumberFormatInfo:.ctor ()
converting method System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo:ReadOnly (System.Globalization.NumberFormatInfo)
Method System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo:ReadOnly (System.Globalization.NumberFormatInfo) emitted at 700000000089cc0 to 700000000089eac (code length 492) [exception.exe]
[1: 26.21311 11] ENTER: System.Globalization.NumberFormatInfo:ReadOnly (System.Globalization.NumberFormatInfo)() ip: 700000000088f7c
converting method (wrapper remoting-invoke-with-check) object object:MemberwiseClone ()
Method (wrapper remoting-invoke-with-check) object object:MemberwiseClone () emitted at 700000000089ee0 to 70000000008a03c (code length 348) [exception.exe]
[1: 26.21334 12] ENTER: (wrapper remoting-invoke-with-check) object:MemberwiseClone ()() ip: 700000000089d60
converting method (wrapper managed-to-native) object object:MemberwiseClone (object)
Method (wrapper managed-to-native) object object:MemberwiseClone (object) emitted at 70000000008a0d0 to 70000000008a3d8 (code length 776) [exception.exe]
[1: 26.21355 13] ENTER: (wrapper managed-to-native) object:MemberwiseClone (object)() ip: 700000000089fe4
[1: 26.21360 13] LEAVE: (wrapper managed-to-native) object:MemberwiseClone (object)[System.Globalization.NumberFormatInfo:700000000402bd8]
[1: 26.21362 12] LEAVE: (wrapper remoting-invoke-with-check) object:MemberwiseClone ()[System.Globalization.NumberFormatInfo:700000000402bd8]
[1: 26.21364 11] LEAVE: System.Globalization.NumberFormatInfo:ReadOnly (System.Globalization.NumberFormatInfo)[System.Globalization.NumberFormatInfo:700000000402bd8]
[1: 26.21366 10] LEAVE: System.Globalization.NumberFormatInfo:get_InvariantInfo ()[System.Globalization.NumberFormatInfo:700000000402bd8]
converting method System.Globalization.TextInfo System.Globalization.TextInfo:get_Invariant ()
Method System.Globalization.TextInfo System.Globalization.TextInfo:get_Invariant () emitted at 70000000008a3d8 to 70000000008a544 (code length 364) [exception.exe]
[1: 26.21393 10] ENTER: System.Globalization.TextInfo:get_Invariant ()() ip: 700000000088ad4
[1: 26.21396 11] ENTER: System.Globalization.CultureData:get_Invariant ()() ip: 70000000008a45c
[1: 26.21398 11] LEAVE: System.Globalization.CultureData:get_Invariant ()[System.Globalization.CultureData:700000000400988]
[1: 26.21401 11] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 70000000008a498
[1: 26.21403 11] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Globalization.TextInfo:700000000402cb0]
converting method void System.Globalization.TextInfo:.ctor (System.Globalization.CultureData)
Method void System.Globalization.TextInfo:.ctor (System.Globalization.CultureData) emitted at 70000000008a578 to 70000000008a6e8 (code length 368) [exception.exe]
[1: 26.21425 11] ENTER: System.Globalization.TextInfo:.ctor (System.Globalization.CultureData)() ip: 70000000008a4c4
[1: 26.21428 11] LEAVE: System.Globalization.TextInfo:.ctor (System.Globalization.CultureData)
[1: 26.21430 10] LEAVE: System.Globalization.TextInfo:get_Invariant ()[System.Globalization.TextInfo:700000000402cb0]
[1: 26.21432 9] LEAVE: System.Globalization.CultureInfo:ConstructInvariant (bool)
[1: 26.21434 8] LEAVE: System.Globalization.CultureInfo:.ctor (int,bool,bool)
[1: 26.21437 8] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000085e54
[1: 26.21439 8] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Object:700000000402cf8]
[1: 26.21441 7] LEAVE: System.Globalization.CultureInfo:.cctor ()
[1: 26.21443 6] LEAVE: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)[OBJECT:0]
Method System.Globalization.CultureInfo System.Globalization.CultureInfo:get_InvariantCulture () emitted at 70000000008a6e8 to 70000000008a790 (code length 168) [exception.exe]
[1: 26.21455 6] ENTER: System.Globalization.CultureInfo:get_InvariantCulture ()() ip: 700000000085c70
[1: 26.21457 6] LEAVE: System.Globalization.CultureInfo:get_InvariantCulture ()[System.Globalization.CultureInfo:700000000400770]
converting method string string:Format (System.IFormatProvider,string,object[])
Method string string:Format (System.IFormatProvider,string,object[]) emitted at 70000000008a790 to 70000000008a970 (code length 480) [exception.exe]
[1: 26.21484 6] ENTER: string:Format (System.IFormatProvider,string,object[])() ip: 700000000085c9c
converting method void System.ParamsArray:.ctor (object[])
Method void System.ParamsArray:.ctor (object[]) emitted at 70000000008a9d0 to 70000000008ac10 (code length 576) [exception.exe]
converting method void System.ParamsArray:.cctor ()
Method void System.ParamsArray:.cctor () emitted at 70000000008ac10 to 70000000008ad88 (code length 376) [exception.exe]
[1: 26.21527 7] ENTER: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)() ip: 900000002c16264
[1: 26.21530 8] ENTER: System.ParamsArray:.cctor ()() ip: 700000000083e54
[1: 26.21532 9] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 70000000008ac8c
[1: 26.21534 9] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Object[]:700000000402d50]
[1: 26.21536 9] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 70000000008acdc
[1: 26.21538 9] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Object[]:700000000402d78]
[1: 26.21541 9] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 70000000008ad2c
[1: 26.21543 9] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Object[]:700000000402da8]
[1: 26.21545 8] LEAVE: System.ParamsArray:.cctor ()
[1: 26.21547 7] LEAVE: (wrapper runtime-invoke) object:runtime_invoke_void (object,intptr,intptr,intptr)[OBJECT:0]
[1: 26.21550 7] ENTER: System.ParamsArray:.ctor (object[])() ip: 70000000008a8c0
[1: 26.21552 7] LEAVE: System.ParamsArray:.ctor (object[])
converting method string string:FormatHelper (System.IFormatProvider,string,System.ParamsArray)
Method string string:FormatHelper (System.IFormatProvider,string,System.ParamsArray) emitted at 70000000008ad88 to 70000000008af8c (code length 516) [exception.exe]
[1: 26.21589 7] ENTER: string:FormatHelper (System.IFormatProvider,string,System.ParamsArray)() ip: 70000000008a91c
converting method System.Text.StringBuilder System.Text.StringBuilderCache:Acquire (int)
Method System.Text.StringBuilder System.Text.StringBuilderCache:Acquire (int) emitted at 70000000008b020 to 70000000008b1fc (code length 476) [exception.exe]
[1: 26.21626 8] ENTER: System.Text.StringBuilderCache:Acquire (int)() ip: 70000000008ae28
[1: 26.21628 9] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 70000000008b174
[1: 26.21630 9] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Text.StringBuilder:700000000402de0]
converting method void System.Text.StringBuilder:.ctor (int)
Method void System.Text.StringBuilder:.ctor (int) emitted at 70000000008b260 to 70000000008b330 (code length 208) [exception.exe]
[1: 26.21647 9] ENTER: System.Text.StringBuilder:.ctor (int)() ip: 70000000008b1a0
converting method void System.Text.StringBuilder:.ctor (string,int)
Method void System.Text.StringBuilder:.ctor (string,int) emitted at 70000000008b360 to 70000000008b464 (code length 260) [exception.exe]
[1: 26.21668 10] ENTER: System.Text.StringBuilder:.ctor (string,int)() ip: 70000000008b2ec
converting method void System.Text.StringBuilder:.ctor (string,int,int,int)
Method void System.Text.StringBuilder:.ctor (string,int,int,int) emitted at 70000000008b498 to 70000000008bad0 (code length 1592) [exception.exe]
[1: 26.21735 11] ENTER: System.Text.StringBuilder:.ctor (string,int,int,int)() ip: 70000000008b414
[1: 26.21739 12] ENTER: (wrapper alloc) object:AllocVector (intptr,intptr)() ip: 70000000008b5a4
[1: 26.21741 12] LEAVE: (wrapper alloc) object:AllocVector (intptr,intptr)[System.Char[]:700000000402e10]
converting method void System.Text.StringBuilder:ThreadSafeCopy (char*,char[],int,int)
Method void System.Text.StringBuilder:ThreadSafeCopy (char*,char[],int,int) emitted at 70000000008bb00 to 70000000008bd18 (code length 536) [exception.exe]
[1: 26.21771 12] ENTER: System.Text.StringBuilder:ThreadSafeCopy (char*,char[],int,int)() ip: 70000000008b630
[1: 26.21774 12] LEAVE: System.Text.StringBuilder:ThreadSafeCopy (char*,char[],int,int)
[1: 26.21776 11] LEAVE: System.Text.StringBuilder:.ctor (string,int,int,int)
[1: 26.21778 10] LEAVE: System.Text.StringBuilder:.ctor (string,int)
[1: 26.21780 9] LEAVE: System.Text.StringBuilder:.ctor (int)
[1: 26.21782 8] LEAVE: System.Text.StringBuilderCache:Acquire (int)[System.Text.StringBuilder:700000000402de0]
converting method System.Text.StringBuilder System.Text.StringBuilder:AppendFormatHelper (System.IFormatProvider,string,System.ParamsArray)
Method System.Text.StringBuilder System.Text.StringBuilder:AppendFormatHelper (System.IFormatProvider,string,System.ParamsArray) emitted at 700000000111000 to 70000000011201c (code length 4124) [exception.exe]
[1: 26.22014 8] ENTER: System.Text.StringBuilder:AppendFormatHelper (System.IFormatProvider,string,System.ParamsArray)() ip: 70000000008ae90
converting method object System.Globalization.CultureInfo:GetFormat (System.Type)
Method object System.Globalization.CultureInfo:GetFormat (System.Type) emitted at 700000000112170 to 7000000001122b8 (code length 328) [exception.exe]
[1: 26.22050 9] ENTER: System.Globalization.CultureInfo:GetFormat (System.Type)() ip: 7000000001110f8
[1: 26.22052 9] LEAVE: System.Globalization.CultureInfo:GetFormat (System.Type)[OBJECT:0]
converting method System.Text.StringBuilder System.Text.StringBuilder:Append (char)
Method System.Text.StringBuilder System.Text.StringBuilder:Append (char) emitted at 7000000001122b8 to 700000000112414 (code length 348) [exception.exe]
[1: 26.22078 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22080 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22083 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22085 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22087 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22089 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22091 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22093 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22095 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22097 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22099 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22101 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22103 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22105 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22108 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22109 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22112 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22114 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22116 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22117 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22120 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22122 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22124 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22125 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22128 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22130 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22132 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22133 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22135 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22137 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22140 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22142 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22143 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22145 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22147 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22149 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22151 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22152 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22154 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22155 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22157 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22159 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22160 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22162 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22163 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22165 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22167 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22168 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22170 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22171 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22173 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22174 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
converting method object System.ParamsArray:get_Item (int)
Method object System.ParamsArray:get_Item (int) emitted at 700000000112418 to 700000000112504 (code length 236) [exception.exe]
[1: 26.22192 9] ENTER: System.ParamsArray:get_Item (int)() ip: 7000000001118b4
[1: 26.22194 9] LEAVE: System.ParamsArray:get_Item (int)[System.String:700000000400610]
converting method string string:ToString ()
Method string string:ToString () emitted at 700000000112538 to 7000000001125d4 (code length 156) [exception.exe]
[1: 26.22207 9] ENTER: string:ToString ()() ip: 700000000111d44
[1: 26.22208 9] LEAVE: string:ToString ()[System.String:700000000400610]
converting method System.Text.StringBuilder System.Text.StringBuilder:Append (string)
Method System.Text.StringBuilder System.Text.StringBuilder:Append (string) emitted at 7000000001125d8 to 700000000112844 (code length 620) [exception.exe]
[1: 26.22242 9] ENTER: System.Text.StringBuilder:Append (string)() ip: 700000000111ddc
converting method void string:wstrcpy (char*,char*,int)
Method void string:wstrcpy (char*,char*,int) emitted at 700000000112878 to 70000000011294c (code length 212) [exception.exe]
[1: 26.22258 10] ENTER: string:wstrcpy (char*,char*,int)() ip: 700000000112760
converting method void System.Buffer:Memcpy (byte*,byte*,int)
Method void System.Buffer:Memcpy (byte*,byte*,int) emitted at 700000000112980 to 700000000112b84 (code length 516) [exception.exe]
[1: 26.22288 11] ENTER: System.Buffer:Memcpy (byte*,byte*,int)() ip: 7000000001128fc
converting method void System.Buffer:memcpy4 (byte*,byte*,int)
Method void System.Buffer:memcpy4 (byte*,byte*,int) emitted at 700000000112c18 to 700000000112d54 (code length 316) [exception.exe]
[1: 26.22311 12] ENTER: System.Buffer:memcpy4 (byte*,byte*,int)() ip: 700000000112b34
[1: 26.22313 12] LEAVE: System.Buffer:memcpy4 (byte*,byte*,int)
[1: 26.22315 11] LEAVE: System.Buffer:Memcpy (byte*,byte*,int)
[1: 26.22316 10] LEAVE: string:wstrcpy (char*,char*,int)
[1: 26.22318 9] LEAVE: System.Text.StringBuilder:Append (string)[System.Text.StringBuilder:700000000402de0]
[1: 26.22319 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22321 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22322 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22324 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22326 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.22327 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.22329 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27255 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27258 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27260 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27262 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27263 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27265 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27267 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27269 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27271 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27273 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27274 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27276 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27278 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27280 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27282 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27283 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27285 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27286 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27288 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27290 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27291 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27293 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27294 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27296 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27297 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27299 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27301 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27302 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27304 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27305 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27307 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27308 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27310 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27312 9] ENTER: System.Text.StringBuilder:Append (char)() ip: 7000000001112e8
[1: 26.27313 9] LEAVE: System.Text.StringBuilder:Append (char)[System.Text.StringBuilder:700000000402de0]
[1: 26.27315 8] LEAVE: System.Text.StringBuilder:AppendFormatHelper (System.IFormatProvider,string,System.ParamsArray)[System.Text.StringBuilder:700000000402de0]
converting method string System.Text.StringBuilderCache:GetStringAndRelease (System.Text.StringBuilder)
Method string System.Text.StringBuilderCache:GetStringAndRelease (System.Text.StringBuilder) emitted at 700000000112d58 to 700000000112e3c (code length 228) [exception.exe]
[1: 26.27332 8] ENTER: System.Text.StringBuilderCache:GetStringAndRelease (System.Text.StringBuilder)() ip: 70000000008aeb4
converting method string System.Text.StringBuilder:ToString ()
Method string System.Text.StringBuilder:ToString () emitted at 700000000112e70 to 700000000113188 (code length 792) [exception.exe]
[1: 26.27379 9] ENTER: System.Text.StringBuilder:ToString ()() ip: 700000000112db8
converting method (wrapper managed-to-native) string string:FastAllocateString (int)
Method (wrapper managed-to-native) string string:FastAllocateString (int) emitted at 7000000001131b8 to 700000000113464 (code length 684) [exception.exe]
[1: 26.27398 10] ENTER: (wrapper managed-to-native) string:FastAllocateString (int)() ip: 700000000112f38
[1: 26.27401 10] LEAVE: (wrapper managed-to-native) string:FastAllocateString (int)[System.String:700000000402ea8]
[1: 26.27403 10] ENTER: string:wstrcpy (char*,char*,int)() ip: 70000000011300c
[1: 26.27405 11] ENTER: System.Buffer:Memcpy (byte*,byte*,int)() ip: 7000000001128fc
[1: 26.27406 12] ENTER: System.Buffer:memcpy4 (byte*,byte*,int)() ip: 700000000112b34
[1: 26.27408 12] LEAVE: System.Buffer:memcpy4 (byte*,byte*,int)
[1: 26.27409 11] LEAVE: System.Buffer:Memcpy (byte*,byte*,int)
[1: 26.27411 10] LEAVE: string:wstrcpy (char*,char*,int)
[1: 26.27413 9] LEAVE: System.Text.StringBuilder:ToString ()[System.String:700000000402ea8]
converting method void System.Text.StringBuilderCache:Release (System.Text.StringBuilder)
Method void System.Text.StringBuilderCache:Release (System.Text.StringBuilder) emitted at 700000000113468 to 70000000011354c (code length 228) [exception.exe]
[1: 26.27433 9] ENTER: System.Text.StringBuilderCache:Release (System.Text.StringBuilder)() ip: 700000000112de4
[1: 26.27435 9] LEAVE: System.Text.StringBuilderCache:Release (System.Text.StringBuilder)
[1: 26.27437 8] LEAVE: System.Text.StringBuilderCache:GetStringAndRelease (System.Text.StringBuilder)[System.String:700000000402ea8]
[1: 26.27439 7] LEAVE: string:FormatHelper (System.IFormatProvider,string,System.ParamsArray)[System.String:700000000402ea8]
[1: 26.27441 6] LEAVE: string:Format (System.IFormatProvider,string,object[])[System.String:700000000402ea8]
[1: 26.27443 5] LEAVE: System.Environment:GetResourceString (string,object[])[System.String:700000000402ea8]
converting method void System.SystemException:.ctor (string,System.Exception)
Method void System.SystemException:.ctor (string,System.Exception) emitted at 700000000113550 to 700000000113624 (code length 212) [exception.exe]
[1: 26.27463 5] ENTER: System.SystemException:.ctor (string,System.Exception)() ip: 7000000000853c0
converting method void System.Exception:.ctor (string,System.Exception)
Method void System.Exception:.ctor (string,System.Exception) emitted at 700000000113658 to 70000000011379c (code length 324) [exception.exe]
[1: 26.27481 6] ENTER: System.Exception:.ctor (string,System.Exception)() ip: 7000000001135d0
[1: 26.27484 7] ENTER: System.Exception:Init ()() ip: 7000000001136d4
[1: 26.27485 8] ENTER: (wrapper alloc) object:AllocSmall (intptr,intptr)() ip: 700000000084250
[1: 26.27487 8] LEAVE: (wrapper alloc) object:AllocSmall (intptr,intptr)[System.Runtime.Serialization.SafeSerializationManager:700000000402f30]
[1: 26.27489 7] LEAVE: System.Exception:Init ()
[1: 26.27490 6] LEAVE: System.Exception:.ctor (string,System.Exception)
[1: 26.27492 5] LEAVE: System.SystemException:.ctor (string,System.Exception)
[1: 26.27494 4] LEAVE: System.TypeInitializationException:.ctor (string,System.Exception)
[1: 26.27495 3] LEAVE: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object_object (object,intptr,intptr,intptr)[OBJECT:0]

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x0700000000084580 in ?? ()
#2  0x0700000000084794 in ?? ()
#3  0x0900000002c16264 in mono_jit_runtime_invoke () from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#4  0x0900000002a1054c in do_runtime_invoke () from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#5  0x0900000002a14348 in do_exec_main_checked () from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#6  0x0900000002d1e8dc in mono_jit_exec () from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#7  0x0900000002d20f28 in mono_main () from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#8  0x0000000100000634 in main (argc=<error reading variable>, argv=<error reading variable>) at  _start_ :443
(gdb) i r
r0             0x110348518      4566844696
r1             0xffffffffffff190        1152921504606843280
r2             0x0      0
r3             0x16     22
r4             0x110005b38      4563426104
r5             0x8      8
r6             0x800000000000d032       9223372036854829106
r7             0x0      0
r8             0x10830053       277020755
r9             0x0      0
r10            0x0      0
r11            0x0      0
r12            0x700000000084580        504403158266037632
r13            0x11000d8c0      4563458240
r14            0x900000002e18c98        648518346389687448
r15            0xffffffffffffb00        1152921504606845696
r16            0x900000002e18ae0        648518346389687008
r17            0x161129ff       370223615
r18            0x900000002e18ad0        648518346389686992
r19            0x1      1
r20            0x900000002dfb400        648518346389566464
r21            0x9001000a05a84e0        648535941217682656
r22            0x1103417b0      4566816688
r23            0xffffffffffff580        1152921504606844288
r24            0x1100a1630      4564063792
r25            0x0      0
r26            0x1103417b0      4566816688
r27            0x0      0
r28            0x1100a2d38      4564069688
r29            0xffffffffffff620        1152921504606844448
r30            0x9001000a05aaa98        648535941217692312
r31            0xffffffffffff250        1152921504606843472
pc             0x0      0x0
msr            0xa00000000000d032       11529215046068523058
cr             0x22283422       573060130
lr             0x700000000084580        0x700000000084580
ctr            0x0      0
xer            0x20000020       536870944
(gdb) frame 1
#1  0x0700000000084580 in ?? ()
(gdb) x/32i $pc - 32
   0x700000000084560:   ori     r12,r12,0
   0x700000000084564:   rldicr  r12,r12,32,31
   0x700000000084568:   oris    r12,r12,8
   0x70000000008456c:   ori     r12,r12,17860
   0x700000000084570:   mr      r12,r12
   0x700000000084574:   nop
   0x700000000084578:   mtlr    r12
   0x70000000008457c:   blrl
=> 0x700000000084580:   li      r3,1
   0x700000000084584:   rldicr  r3,r3,32,31
   0x700000000084588:   oris    r3,r3,4106
   0x70000000008458c:   ori     r3,r3,11576
   0x700000000084590:   lis     r12,2304
   0x700000000084594:   ori     r12,r12,4096
   0x700000000084598:   rldicr  r12,r12,32,31
   0x70000000008459c:   oris    r12,r12,41052
   0x7000000000845a0:   ori     r12,r12,28640
   0x7000000000845a4:   ld      r2,8(r12)
   0x7000000000845a8:   ld      r12,0(r12)
   0x7000000000845ac:   mtlr    r12
   0x7000000000845b0:   blrl
   0x7000000000845b4:   ld      r0,208(r1)
   0x7000000000845b8:   mtlr    r0
   0x7000000000845bc:   addi    r1,r1,192
   0x7000000000845c0:   blr
   0x7000000000845c4:   lis     r0,0
   0x7000000000845c8:   ori     r0,r0,1
   0x7000000000845cc:   rldicr  r0,r0,32,31
   0x7000000000845d0:   oris    r0,r0,4148
   0x7000000000845d4:   ori     r0,r0,34072
   0x7000000000845d8:   b       0x700000000006000
   0x7000000000845dc:   .long 0x0
(gdb) i r
r0             0x110348518      4566844696
r1             0xffffffffffff190        1152921504606843280
r2             0x0      0
r3             0x16     22
r4             0x110005b38      4563426104
r5             0x8      8
r6             0x800000000000d032       9223372036854829106
r7             0x0      0
r8             0x10830053       277020755
r9             0x0      0
r10            0x0      0
r11            0x0      0
r12            0x700000000084580        504403158266037632
r13            0x11000d8c0      4563458240
r14            0x900000002e18c98        648518346389687448
r15            0xffffffffffffb00        1152921504606845696
r16            0x900000002e18ae0        648518346389687008
r17            0x161129ff       370223615
r18            0x900000002e18ad0        648518346389686992
r19            0x1      1
r20            0x900000002dfb400        648518346389566464
r21            0x9001000a05a84e0        648535941217682656
r22            0x1103417b0      4566816688
r23            0xffffffffffff580        1152921504606844288
r24            0x1100a1630      4564063792
r25            0x0      0
r26            0x1103417b0      4566816688
r27            0x0      0
r28            0x1100a2d38      4564069688
r29            0xffffffffffff620        1152921504606844448
r30            0x9001000a05aaa98        648535941217692312
r31            0xffffffffffff250        1152921504606843472
pc             0x700000000084580        0x700000000084580
msr            0xa00000000000d032       11529215046068523058
cr             0x22283422       573060130
lr             0x700000000084580        0x700000000084580
ctr            0x0      0
xer            0x20000020       536870944

A large (768K) log with -v -v can be uploaded on request.

Roslyn doesn't work

Several compounding factors. One affects parsing, and it can seem to be controlled by disabling optimizations like gshared and inlining, but is quite flaky.

AOT doesn't know how to produce assembly for XCOFF binaries

AOT code can't be generated because the assembly generator for the runtime spits out code not appropriate for XCOFF, let alone IBM as.

I think AIX is closer to Windows than anything ELF?

Checklist of known tasks:

  • Verify we're using the 64-bit assembler mode

  • Verify if we want to use IBM instead of GNU as

    • This involves another dependency.
  • Disable DWARF output

    • Down the road, we could theoretically emit XCOFF debug info instead
  • Squash GNU syntax assumptions for PowerPC emitting

    • Seems contained within aot-runtime.c.
  • Squash ELF assumptions

    • I've conducted very brief experiments using GAS instead; it expicitly tells you what's not supported on AIX.

Fix network interface enumeration on Mono

Right now Mono can't enumerate network interfaces; it assumes none are installed. What's happening is Mono assumes in the default Unix interface enumerator class that it can list them off with getifaddrs, which isn't present under AIX, and is available in a different form with a different name under i. What can be done is writing a backend or two using SIOCGIFCONF based enumeration for AIX; and perhaps one using Qp2getifaddrs under i. (Alternatively, we could point to a wrapper library, but this is a pain.)

This is of relatively high importance because the Socket class uses these to enumerate supported network protocols; and that is used by things like DNS. Fixing this will enable a huge swath of tests under AIX CI. Right now, upstream is in the middle of refactoring this, so I don't know if I should wait for them to finish or not.

In the mean time, our binary builds supply a patch to nop out the check for interfaces in Sockets init.

File.Exists causes app to fail when file not found and used in a Class.

Was working on a sample app and getting this error from a System.IO.File.Exists check if a file is not found if I use within a class. If file is found, no error. Weird.

Kills the .Net app completely.

Only happens on latest mono code. (1/19/19 snapshot).

Looks to be threading related perhaps.

I simply reverted to the 10/14/18 snapshot and all works fine again.

Appears to be something that broke between releases.

Stacktrace:

at <0xffffffff>
at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.T
at System.Threading.Tasks.Task.ExecuteEntry (bool) [0x0005e] in <a945e967
at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.Execu
at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in <a945e96
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x000
at (wrapper runtime-invoke) .runtime_invoke_bool (object,intptr,i
Memory around native instruction pointer (900000002984b48):
900000002984b38 60 00 00 00 eb ff 00 10 2f bf 00 00 41 9e 00 88 ......./ at System.Threading.Tasks.Task.ExecuteEntry (bool) [0x0005e] in <a945e967 at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.Execu at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in <a945e96 at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x000 at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,i mory around native instruction pointer (900000002984b48): 0000002984b38 60 00 00 00 eb ff 00 10 2f bf 00 00 41 9e 00 88 ......./
0000002984b48 e8 7f 00 00 f8 41 00 28 7f 84 e3 78 e9 3d 00 00 .....A.(.
0000002984b58 e9 7d 00 10 7d 29 03 a6 e8 5d 00 08 4e 80 04 21 .}..})...
0000002984b68 e8 41 00 28 2f a3 00 00 41 9e ff cc 2f ba 00 00 .A.(/...A

Database access samples on IBMi - ADO.Net

I downloaded and installed the binary today. Seems to work nicely with the simple hello.cs.

Do you have any database samples yet using ADO.Net ?

Not sure if there is any database drivers that will work on IBMi yet with this port ?

Please let me know.

Thanks
Richard

svr4 style sonames

latest attempt here: https://gist.github.com/NattyNarwhal/b2d8ad27d40a7aef5be4b321493792ef

Working on a patch to cut the gordian knot of strange AIX library behaviour with a patch in two parts:

  • use AIX sonames set to svr4 mode

  • put code to detect if mono_dl_open is trying to access an ar archive, and if so, try common member names

The advantages are those are multiple:

  • Consistency with RPMs from Rochester. (Less so in AIX world.)

  • Static mono works, as does shipping static libraries too. It's a lot less confusing for GNU build tools. Upstream seems to prefer static mono, though Win32 and Android don't use it. It does complain.

  • People trying to access an .so on AIX/PASE like it was a library (it's not - on AIX/PASE, GNU build utils will make it an archive with shr.o member) will have this automatically corrected for them with a small hack in the dlopen wrapper, ideally regardless of where it came from.

  • Simplify DllMap by using the previous point - we can just reference .so names and it'll Just Work, while still having our cake and eating it too by having explicit member references work.

So far my patch works and builds Mono fine, just a bit concerned about if the hack is appropriate/right place, and rtl linking could be weird. (I have to explicitly disable it for System.Native due to differences unresolved-at-link-time externals get resolved at runtime, for instance.)

Mono profiler is broken

Was low priority until --trace started to require it to work. For now, you can revert mono/mono@2b029b3, but this won't be sustainable. Need to figure out how to get this working, otherwise debugging will be a LOT harder.

PPC32 support

Would provide a possibly faster, memory lighter at runtime, use PPC32 libraries in P/Invoke, and a good way for upstream to ensure their PPC32 support works. However, AIX uses function descriptors and its strange calling convention on 32 bit, which violates many of Mono's assumptions about PPC32. (This is why right now, the runtime is 64-bit only.)

Requires

  • Allow configurability for 32/64-bit build (we don't need to propagate an env var; maybe we would if we compiled with xlc) with a cleanup in configure.ac

  • Find all function descriptor handling code and ensure it works on PPC32

  • Find code size assumptions (function descriptor loading code bumps up code size by eight bytes (two ppc32 opcodes) per use of ppc_load_func) and resolve patching issues

  • Other issues like calling conventions

Patch:

Currently bombs out at mini-ppc.c:3080 - PPC32 patching logic I assume has no clue how to deal with function descriptors. Won't send upstream until I can get a program executing.

diff --git a/configure.ac b/configure.ac
index f881417..1babe78 100644
--- a/configure.ac
+++ b/configure.ac
@@ -377,15 +377,32 @@ case "$host" in
 		use_sigposix=yes
 		;;
 	*-*-aix*|*-*-os400*)
-		dnl Set up a 64-bit build
-		CPPFLAGS="$CPPFLAGS -maix64 -DGC_AIX_THREADS -D_ALL_SOURCE -D_THREAD_SAFE -D_LARGE_FILES -D_REENTRANT"
-		LDFLAGS="-maix64"
 		libmono_cflags="-D_THREAD_SAFE -D_REENTRANT"
-		dnl Would you believe GNU nm doesn't know how to process AIX libraries?
-		dnl Hardcode IBM binutils in case GNU ones end up on our path. Also
-		dnl specifiy 64-bit mode for tools.
-		AR="/usr/bin/ar -X64"
-		NM="/usr/bin/nm -X64"
+		dnl This environment variable controls if our build is 32 or 64-bit.
+		AC_ARG_VAR(OBJECT_MODE, [Specifies the bitness type output of IBM binutils])
+		dnl Specify the IBM binutils in case GNU ones end up on our path.
+		dnl OBJECT_MODE sets the bitness of IBM binutils; but this is a pain to 
+		dnl propagate to makefiles; so specify a tool's 64-bit mode manually for now.
+		if test "$OBJECT_MODE" = "64"; then
+			AR="/usr/bin/ar -X64"
+			NM="/usr/bin/nm -X64"
+		else
+			AR="/usr/bin/ar"
+			NM="/usr/bin/nm"
+		fi
+		dnl Check for GCC vs. XL C; GCC doesn't respect OBJECT_MODE, FWIW
+		if test "$GCC" != "yes"; then
+			if test "$OBJECT_MODE" = "64"; then
+				CPPFLAGS="$CPPFLAGS -maix64 -DGC_AIX_THREADS -D_ALL_SOURCE -D_THREAD_SAFE -D_LARGE_FILES -D_REENTRANT"
+				LDFLAGS="-maix64"
+			else
+				echo " ** No OBJECT_MODE ** "
+				CPPFLAGS="$CPPFLAGS -DGC_AIX_THREADS -D_ALL_SOURCE -D_THREAD_SAFE -D_LARGE_FILES -D_REENTRANT"
+			fi
+		else
+			dnl TODO: XL C support
+			CPPFLAGS="$CPPFLAGS -DGC_AIX_THREADS -D_ALL_SOURCE -D_THREAD_SAFE -D_LARGE_FILES -D_REENTRANT"
+		fi
 		dnl SGen is the future (changes to Boehm support code would be
 		dnl required if you wish to re-enable Boehm)
 		support_boehm=no
@@ -3979,8 +3996,11 @@ case "$host" in
 			BTLS_PLATFORM=powerpc
 			dnl on AIX/PASE, shared libraries can be inside archives
 			dnl if they are, we specify them by lib.a(lib.so)
-			dnl we may hardcode 64-bit names at times, but we don't do 32-bit AIX, so
-			LIBC="libc.a(shr_64.o)"
+			if test "$OBJECT_MODE" = "64"; then
+				LIBC="libc.a(shr_64.o)"
+			else
+				LIBC="libc.a(shr.o)"
+			fi
 			INTL="libintl.a(libintl.so.8)"
 			;;
 		  linux*)
@@ -5135,8 +5155,25 @@ if test "x$enable_btls" = "xyes"; then
 		btls_arch=powerpc
 		case $host_os in
 			aix*|os400*)
-				btls_cflags="$btls_cflags -maix64 -mminimal-toc -pthread -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
-				BTLS_CMAKE_ARGS="-DCMAKE_AR=/usr/bin/ar -DCMAKE_C_ARCHIVE_CREATE=\"<CMAKE_AR> -X64 cr <TARGET> <LINK_FLAGS> <OBJECTS>\""
+				dnl Test for GCC vs. XL C
+				if test "$GCC" != "yes"; then
+					if test "$OBJECT_MODE" = "64"; then
+						btls_cflags="$btls_cflags -maix64 -mminimal-toc -pthread -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
+						BTLS_CMAKE_ARGS="-DCMAKE_AR=/usr/bin/ar -DCMAKE_C_ARCHIVE_CREATE=\"<CMAKE_AR> -X64 cr <TARGET> <LINK_FLAGS> <OBJECTS>\""
+					else
+						btls_cflags="$btls_cflags -mminimal-toc -pthread -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
+						BTLS_CMAKE_ARGS="-DCMAKE_AR=/usr/bin/ar -DCMAKE_C_ARCHIVE_CREATE=\"<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>\""
+					fi
+				else
+					dnl TODO: Verify this for XL C support
+					if test "$OBJECT_MODE" = "64"; then
+						btls_cflags="$btls_cflags -maix64 -mminimal-toc -pthread -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
+						BTLS_CMAKE_ARGS="-DCMAKE_AR=/usr/bin/ar -DCMAKE_C_ARCHIVE_CREATE=\"<CMAKE_AR> -X64 cr <TARGET> <LINK_FLAGS> <OBJECTS>\""
+					else
+						btls_cflags="$btls_cflags -mminimal-toc -pthread -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
+						BTLS_CMAKE_ARGS="-DCMAKE_AR=/usr/bin/ar -DCMAKE_C_ARCHIVE_CREATE=\"<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS>\""
+					fi
+				fi
 		esac
 		;;
 	android-armv5)
diff --git a/external/boringssl b/external/boringssl
--- a/external/boringssl
+++ b/external/boringssl
@@ -1 +1 @@
-Subproject commit 4e95a6c97494a0c5e9d1f7b6f49c0ff4102908e8
+Subproject commit 4e95a6c97494a0c5e9d1f7b6f49c0ff4102908e8-dirty
diff --git a/external/corefx b/external/corefx
--- a/external/corefx
+++ b/external/corefx
@@ -1 +1 @@
-Subproject commit d2aaa5450b5481c2392a3a5656d353f28e5e3bbd
+Subproject commit d2aaa5450b5481c2392a3a5656d353f28e5e3bbd-dirty
diff --git a/mono/arch/ppc/ppc-codegen.h b/mono/arch/ppc/ppc-codegen.h
index 98fed75..da1a139 100644
--- a/mono/arch/ppc/ppc-codegen.h
+++ b/mono/arch/ppc/ppc-codegen.h
@@ -205,7 +205,15 @@ enum {
 		}	\
 	} G_STMT_END
 
+#if defined(_AIX)
+#define ppc_load_func(c,D,v) G_STMT_START { \
+		ppc_load_sequence ((c), ppc_r12, (gpointer)(gsize)(v));	\
+		ppc_ldptr ((c), ppc_r2, sizeof (gpointer), ppc_r12);	\
+		ppc_ldptr ((c), (D), 0, ppc_r12);	\
+	} G_STMT_END
+#else
 #define ppc_load_func(c,D,V)	      ppc_load_sequence ((c), (D), (V))
+#endif
 
 #define ppc_load_multiple_regs(c,D,d,A)      ppc_lmw   ((c), (D), (d), (A))
 
diff --git a/mono/mini/cpu-ppc.md b/mono/mini/cpu-ppc.md
index 5eea6e3..d251798 100644
--- a/mono/mini/cpu-ppc.md
+++ b/mono/mini/cpu-ppc.md
@@ -80,7 +80,7 @@ fcompare: src1:f src2:f len:12
 oparglist: src1:i len:12
 setlret: src1:i src2:i len:12
 checkthis: src1:b len:4
-voidcall: len:16 clob:c
+voidcall: len:24 clob:c
 voidcall_reg: src1:i len:16 clob:c
 voidcall_membase: src1:b len:16 clob:c
 fcall: dest:g len:16 clob:c
diff --git a/mono/mini/exceptions-ppc.c b/mono/mini/exceptions-ppc.c
index 3483ba8..43113b6 100644
--- a/mono/mini/exceptions-ppc.c
+++ b/mono/mini/exceptions-ppc.c
@@ -463,7 +463,7 @@ mono_arch_get_throw_exception_generic (int size, MonoTrampInfo **info, int corli
 gpointer
 mono_arch_get_rethrow_exception (MonoTrampInfo **info, gboolean aot)
 {
-	int size = MONO_PPC_32_64_CASE (132, 224) + PPC_FTNPTR_SIZE;
+	int size = MONO_PPC_32_64_CASE (140, 224) + PPC_FTNPTR_SIZE;
 
 	if (aot)
 		size += 64;
@@ -485,7 +485,7 @@ mono_arch_get_rethrow_exception (MonoTrampInfo **info, gboolean aot)
 gpointer
 mono_arch_get_throw_exception (MonoTrampInfo **info, gboolean aot)
 {
-	int size = MONO_PPC_32_64_CASE (132, 224) + PPC_FTNPTR_SIZE;
+	int size = MONO_PPC_32_64_CASE (140, 224) + PPC_FTNPTR_SIZE;
 
 	if (aot)
 		size += 64;
@@ -502,7 +502,7 @@ mono_arch_get_throw_exception (MonoTrampInfo **info, gboolean aot)
 gpointer
 mono_arch_get_throw_corlib_exception (MonoTrampInfo **info, gboolean aot)
 {
-	int size = MONO_PPC_32_64_CASE (168, 304) + PPC_FTNPTR_SIZE;
+	int size = MONO_PPC_32_64_CASE (176, 304) + PPC_FTNPTR_SIZE;
 
 	if (aot)
 		size += 64;
@@ -679,8 +679,8 @@ mono_arch_handle_altstack_exception (void *sigctx, MONO_SIG_HANDLER_INFO_TYPE *s
 	{
 		MonoPPCFunctionDescriptor *handler_ftnptr = (MonoPPCFunctionDescriptor*)altstack_handle_and_restore;
 
-		UCONTEXT_REG_NIP(uc) = (gulong)handler_ftnptr->code;
-		UCONTEXT_REG_Rn(uc, 2) = (gulong)handler_ftnptr->toc;
+		UCONTEXT_REG_NIP(uc) = (gpointer)handler_ftnptr->code;
+		UCONTEXT_REG_Rn(uc, 2) = (gpointer)handler_ftnptr->toc;
 	}
 #else
 	UCONTEXT_REG_NIP(uc) = (unsigned long)altstack_handle_and_restore;
@@ -726,8 +726,8 @@ setup_ucontext_return (void *uc, gpointer func)
 	{
 		MonoPPCFunctionDescriptor *handler_ftnptr = (MonoPPCFunctionDescriptor*)func;
 
-		UCONTEXT_REG_NIP(uc) = (gulong)handler_ftnptr->code;
-		UCONTEXT_REG_Rn(uc, 2) = (gulong)handler_ftnptr->toc;
+		UCONTEXT_REG_NIP(uc) = (gpointer)handler_ftnptr->code;
+		UCONTEXT_REG_Rn(uc, 2) = (gpointer)handler_ftnptr->toc;
 	}
 #else
 	UCONTEXT_REG_NIP(uc) = (unsigned long)func;
@@ -794,9 +794,9 @@ mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), g
 	uintptr_t sp = (uintptr_t) MONO_CONTEXT_GET_SP(ctx);
 	ctx->regs [PPC_FIRST_ARG_REG] = user_data;
 	sp -= PPC_MINIMAL_STACK_SIZE;
-	*(unsigned long *)sp = MONO_CONTEXT_GET_SP(ctx);
+	*(gpointer *)sp = MONO_CONTEXT_GET_SP(ctx);
 	MONO_CONTEXT_SET_BP(ctx, sp);
-	mono_arch_setup_resume_sighandler_ctx(ctx, (unsigned long) async_cb);
+	mono_arch_setup_resume_sighandler_ctx(ctx, (gpointer) async_cb);
 }
 
 void
@@ -804,9 +804,9 @@ mono_arch_setup_resume_sighandler_ctx (MonoContext *ctx, gpointer func)
 {
 #ifdef PPC_USES_FUNCTION_DESCRIPTOR
 	MonoPPCFunctionDescriptor *handler_ftnptr = (MonoPPCFunctionDescriptor*)func;
-	MONO_CONTEXT_SET_IP(ctx, (gulong)handler_ftnptr->code);
-	ctx->regs[2] = (gulong)handler_ftnptr->toc;
+	MONO_CONTEXT_SET_IP(ctx, (gpointer)handler_ftnptr->code);
+	ctx->regs[2] = (gpointer)handler_ftnptr->toc;
 #else
-	MONO_CONTEXT_SET_IP(ctx, (unsigned long) func);
+	MONO_CONTEXT_SET_IP(ctx, (gpointer) func);
 #endif
 }
diff --git a/mono/mini/mini-ppc.c b/mono/mini/mini-ppc.c
index 282868e..a20f622 100644
--- a/mono/mini/mini-ppc.c
+++ b/mono/mini/mini-ppc.c
@@ -2951,7 +2951,7 @@ ppc_patch_full (MonoCompile *cfg, MonoDomain *domain, guchar *code, const guchar
 	guint32 prim = ins >> 26;
 	guint32 ovf;
 
-	//g_print ("patching 0x%08x (0x%08x) to point to 0x%08x\n", code, ins, target);
+	g_print ("patching 0x%08x (0x%08x) to point to 0x%08x\n", code, ins, target);
 	if (prim == 18) {
 		// prefer relative branches, they are more position independent (e.g. for AOT compilation).
 		gint diff = target - code;
@@ -3087,7 +3087,7 @@ ppc_patch_full (MonoCompile *cfg, MonoDomain *domain, guchar *code, const guchar
 	} else {
 		g_assert_not_reached ();
 	}
-//	g_print ("patched with 0x%08x\n", ins);
+	g_print ("patched with 0x%08x\n", ins);
 }
 
 void
diff --git a/mono/mini/mini-runtime.c b/mono/mini/mini-runtime.c
index 2f16279..bc406b9 100644
--- a/mono/mini/mini-runtime.c
+++ b/mono/mini/mini-runtime.c
@@ -3812,7 +3812,7 @@ mini_create_ftnptr (MonoDomain *domain, gpointer addr)
 
 	if ((desc = g_hash_table_lookup (domain->ftnptrs_hash, addr)))
 		return desc;
-#if defined(__mono_ppc64__)
+#if defined(PPC_USES_FUNCTION_DESCRIPTOR)
 	desc = mono_domain_alloc0 (domain, 3 * sizeof (gpointer));
 
 	desc [0] = addr;

BoringTLS can't connect to some sites

Sites like github.com or api.nuget.org don't work. Maybe it's an endianness issue?

gdb output:

(gdb) run
Starting program: /opt/mono/bin/mono /home/calvin/curl.exe https://github.com
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/power6/libthread_db.so.1".
[New Thread 0xfffb77bf1c0 (LWP 6331)]
[New Thread 0xfffb6fff1c0 (LWP 6330)]
[New Thread 0xfffb44ff1c0 (LWP 6334)]
[New Thread 0xfffb46ff1c0 (LWP 6333)]
[New Thread 0xfffaf94f1c0 (LWP 6338)]
[New Thread 0xfffb42ff1c0 (LWP 6337)]
[New Thread 0xfffafdef1c0 (LWP 6336)]
[New Thread 0xfffaffff1c0 (LWP 6335)]
[New Thread 0xfffb48ff1c0 (LWP 6332)]
[Switching to Thread 0xfffb46ff1c0 (LWP 6333)]

Breakpoint 1, ssl_process_alert (ssl=0xfffb00c4110, out_alert=0xfffb46fb7c1 "", in=0xfffb011dd28 "\002(", in_len=2) at /home/calvin/mono/external/boringssl/ssl/tls_record.c:462
462         OPENSSL_PUT_ERROR(SSL, SSL_AD_REASON_OFFSET + alert_descr);
(gdb) bt
#0  ssl_process_alert (ssl=0xfffb00c4110, out_alert=0xfffb46fb7c1 "", in=0xfffb011dd28 "\002(", in_len=2) at /home/calvin/mono/external/boringssl/ssl/tls_record.c:462
#1  0x00000fffafaf5bdc in tls_open_record (ssl=0xfffb00c4110, out_type=0xfffb46fb7c0 "", out=0xfffb46fb7b0, out_consumed=0xfffb46fb7c8, out_alert=0xfffb46fb7c1 "", in=0xfffb011dd23 "\025\003\003", in_len=7)
    at /home/calvin/mono/external/boringssl/ssl/tls_record.c:289
#2  0x00000fffafad1f38 in ssl3_get_record (ssl=0xfffb00c4110) at /home/calvin/mono/external/boringssl/ssl/s3_pkt.c:144
#3  0x00000fffafad2854 in ssl3_read_change_cipher_spec (ssl=0xfffb00c4110) at /home/calvin/mono/external/boringssl/ssl/s3_pkt.c:322
#4  0x00000fffafac43c8 in ssl3_connect (ssl=0xfffb00c4110) at /home/calvin/mono/external/boringssl/ssl/handshake_client.c:479
#5  0x00000fffafae0ae4 in SSL_do_handshake (ssl=0xfffb00c4110) at /home/calvin/mono/external/boringssl/ssl/ssl_lib.c:594
#6  0x00000fffafae0b48 in SSL_connect (ssl=0xfffb00c4110) at /home/calvin/mono/external/boringssl/ssl/ssl_lib.c:603
#7  0x00000fffaf9a2dd8 in mono_btls_ssl_connect (ptr=0xfffb00c3ad0) at /home/calvin/mono/mono/btls/btls-ssl.c:115
#8  0x00000fffb4046a14 in ?? ()
#9  0x00000fffb404683c in ?? ()
#10 0x00000fffb4046704 in ?? ()
#11 0x00000fffb40461a0 in ?? ()
#12 0x00000fffb7548d64 in ?? ()
#13 0x00000fffb7548a78 in ?? ()
#14 0x00000fffb7548954 in ?? ()
#15 0x00000fffb7546df0 in ?? ()
#16 0x00000fffb75116c8 in ?? ()
#17 0x00000fffb74ea610 in ?? ()
#18 0x00000fffb74e98e0 in ?? ()
#19 0x00000fffb75113dc in ?? ()
#20 0x00000fffb7510b84 in ?? ()
#21 0x00000fffb750ed3c in ?? ()
#22 0x00000fffb750eb14 in ?? ()
#23 0x00000fffb4056ccc in ?? ()
#24 0x00000fffb7548474 in ?? ()
#25 0x00000fffb75481e8 in ?? ()
#26 0x00000fffb75116c8 in ?? ()
#27 0x00000fffb74ea610 in ?? ()
#28 0x00000fffb74e98e0 in ?? ()
#29 0x00000fffb75113dc in ?? ()
#30 0x00000fffb7510b84 in ?? ()
#31 0x00000fffb750ed3c in ?? ()
#32 0x00000fffb750eb14 in ?? ()
#33 0x00000fffb4056848 in ?? ()
#34 0x00000fffb4056a64 in ?? ()
#35 0x00000fffb4052c38 in ?? ()
#36 0x00000fffb75116c8 in ?? ()
#37 0x00000fffb74ea610 in ?? ()
#38 0x00000fffb74e98e0 in ?? ()
#39 0x00000fffb75113dc in ?? ()
#40 0x00000fffb7510b84 in ?? ()
#41 0x00000fffb750ed3c in ?? ()
#42 0x00000fffb750eb14 in ?? ()
#43 0x00000fffb4056848 in ?? ()
#44 0x00000fffb4055b9c in ?? ()
#45 0x00000fffb40558f0 in ?? ()
#46 0x00000fffb7532f2c in ?? ()
#47 0x00000fffb7532e3c in ?? ()
#48 0x00000fffb74e36d0 in ?? ()
#49 0x00000fffb74e2a94 in ?? ()
#50 0x00000fffb74e2c00 in ?? ()
#51 0x00000000100372ec in mono_jit_runtime_invoke (method=<optimized out>, obj=0x1, params=0x0, exc=<optimized out>, error=0xfffb70cf880) at mini-runtime.c:2803
#52 0x0000000010222938 in do_runtime_invoke (method=0x104d08b8, obj=<optimized out>, params=<optimized out>, exc=<optimized out>, error=0xfffb46fe410) at object.c:2842
#53 0x000000001025758c in try_invoke_perform_wait_callback (error=0xfffb46fe410, exc=0xfffb46fe488) at threadpool.c:282
#54 worker_callback () at threadpool.c:366
#55 0x00000000102ba2b8 in worker_thread (unused=<optimized out>) at threadpool-worker-default.c:493
#56 0x00000000102563d8 in start_wrapper_internal (stack_ptr=<optimized out>, start_info=0x0) at threads.c:1063
#57 start_wrapper (data=0x106240b0) at threads.c:1123
---Type <return> to continue, or q <return> to quit---
#58 0x00000fffb7e1c6ac in .start_thread () from /lib64/power6/libpthread.so.0
#59 0x00000fffb7d38b1c in .__clone () from /lib64/power6/libc.so.6
(gdb) continue
Continuing.

Unhandled Exception:
System.Net.WebException: Error: SecureChannelFailure (A call to SSPI failed, see inner exception.) ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Mono.Btls.MonoBtlsException: Ssl error:10000410:SSL routines:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAILURE
  at /home/calvin/mono/external/boringssl/ssl/tls_record.c:462
  at Mono.Btls.MonoBtlsContext.ProcessHandshake () [0x00054] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake (Mono.Net.Security.AsyncOperationStatus status) [0x0004a] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at (wrapper remoting-invoke-with-check) Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake(Mono.Net.Security.AsyncOperationStatus)
  at Mono.Net.Security.AsyncHandshakeRequest.Run (Mono.Net.Security.AsyncOperationStatus status) [0x00006] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at Mono.Net.Security.AsyncProtocolRequest+<ProcessOperation>c__async1.MoveNext () [0x0012a] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at Mono.Net.Security.AsyncProtocolRequest+<StartOperation>c__async0.MoveNext () [0x000a4] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
   --- End of inner exception stack trace ---
  at Mono.Net.Security.MobileAuthenticatedStream+<ProcessAuthentication>c__async0.MoveNext () [0x00333] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at Mono.Net.Security.MonoTlsStream+<CreateStream>c__async0.MoveNext () [0x0018c] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebConnection+<CreateStream>c__async1.MoveNext () [0x001f5] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
   --- End of inner exception stack trace ---
  at System.Net.WebConnection+<CreateStream>c__async1.MoveNext () [0x00275] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebConnection+<InitConnection>c__async2.MoveNext () [0x0015b] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebOperation+<Run>c__async2.MoveNext () [0x000c2] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Net.HttpWebRequest+<RunWithTimeoutWorker>c__async0`1[T].MoveNext () [0x0010e] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Net.HttpWebRequest.GetResponse () [0x00018] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.GetWebResponse (System.Net.WebRequest request) [0x00000] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadBits (System.Net.WebRequest request, System.IO.Stream writeStream) [0x00000] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebOperation+<FinishReading>c__async3.MoveNext () [0x00094] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebClient.DownloadBits (System.Net.WebRequest request, System.IO.Stream writeStream) [0x0011c] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadDataInternal (System.Uri address, System.Net.WebRequest& request) [0x00069] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadString (System.Uri address) [0x00011] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadString (System.String address) [0x00008] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at (wrapper remoting-invoke-with-check) System.Net.WebClient.DownloadString(string)
  at Curl.Main (System.String[] args) [0x00010] in <d1dd12e1d7f24c588d5df2bbbf98b09b>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.Net.WebException: Error: SecureChannelFailure (A call to SSPI failed, see inner exception.) ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Mono.Btls.MonoBtlsException: Ssl error:10000410:SSL routines:OPENSSL_internal:SSLV3_ALERT_HANDSHAKE_FAILURE
  at /home/calvin/mono/external/boringssl/ssl/tls_record.c:462
  at Mono.Btls.MonoBtlsContext.ProcessHandshake () [0x00054] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake (Mono.Net.Security.AsyncOperationStatus status) [0x0004a] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at (wrapper remoting-invoke-with-check) Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake(Mono.Net.Security.AsyncOperationStatus)
  at Mono.Net.Security.AsyncHandshakeRequest.Run (Mono.Net.Security.AsyncOperationStatus status) [0x00006] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at Mono.Net.Security.AsyncProtocolRequest+<ProcessOperation>c__async1.MoveNext () [0x0012a] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at Mono.Net.Security.AsyncProtocolRequest+<StartOperation>c__async0.MoveNext () [0x000a4] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
   --- End of inner exception stack trace ---
  at Mono.Net.Security.MobileAuthenticatedStream+<ProcessAuthentication>c__async0.MoveNext () [0x00333] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at Mono.Net.Security.MonoTlsStream+<CreateStream>c__async0.MoveNext () [0x0018c] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebConnection+<CreateStream>c__async1.MoveNext () [0x001f5] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
   --- End of inner exception stack trace ---
  at System.Net.WebConnection+<CreateStream>c__async1.MoveNext () [0x00275] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebConnection+<InitConnection>c__async2.MoveNext () [0x0015b] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebOperation+<Run>c__async2.MoveNext () [0x000c2] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Net.HttpWebRequest+<RunWithTimeoutWorker>c__async0`1[T].MoveNext () [0x0010e] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Net.HttpWebRequest.GetResponse () [0x00018] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.GetWebResponse (System.Net.WebRequest request) [0x00000] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadBits (System.Net.WebRequest request, System.IO.Stream writeStream) [0x00000] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebOperation+<FinishReading>c__async3.MoveNext () [0x00094] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <2851cc0911e843b2ad35b479c8e2a704>:0
  at System.Net.WebClient.DownloadBits (System.Net.WebRequest request, System.IO.Stream writeStream) [0x0011c] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadDataInternal (System.Uri address, System.Net.WebRequest& request) [0x00069] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadString (System.Uri address) [0x00011] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at System.Net.WebClient.DownloadString (System.String address) [0x00008] in <697f158bf0a84348a1ef6ca3914dfe6b>:0
  at (wrapper remoting-invoke-with-check) System.Net.WebClient.DownloadString(string)
  at Curl.Main (System.String[] args) [0x00010] in <d1dd12e1d7f24c588d5df2bbbf98b09b>:0
[Thread 0xfffaf94f1c0 (LWP 6338) exited]
[Thread 0xfffb42ff1c0 (LWP 6337) exited]
[Thread 0xfffafdef1c0 (LWP 6336) exited]
[Thread 0xfffaffff1c0 (LWP 6335) exited]
[Thread 0xfffb46ff1c0 (LWP 6333) exited]
[Thread 0xfffb48ff1c0 (LWP 6332) exited]
[Thread 0xfffb77bf1c0 (LWP 6331) exited]
[Thread 0xfffb6fff1c0 (LWP 6330) exited]
[Thread 0xfffb7e012b0 (LWP 6329) exited]
[Inferior 1 (process 6329) exited with code 01]

Package libgdiplus and dependencies

libgdiplus itself is not hard to port; rather, wrangling its chain of dependencies is. Without it, System.Drawing will crash out hard.

glib

Probably just use Bull's srpm, patch it for anything i 7.1 lacks, and put in it the prefix. Same for libffi, if we use a version dependent. May be even possible just to use binary package unmodified.

exiflib, etc.

Likely easy to build or just recycle Bull binary RPM.

Take advantage of Mono crash reporting

Mono plans to add telemetry with Sentry for enhanced crash diagnostics and reporting.

  • For now, crash reporting is disabled to due a missing dladdr. Reimplement this and see what it takes to turn it on.

  • Do we need our own Sentry instance? I recall Kyte saying that they'd fish out AIX/PASE crash logs from the MS instance for us?

Follow up with Alexander Kyte from MS if we decide to go this route.

MemoryMappedFile segfaults

#0  mono_mmap_open_file (path=0x0, path_length=-2800, mode=0, mapName=0x110063798, mapName_length=4195344, capacity=0x110302f90, access=271593360, options=0, ioerror=0xb, error=0x3) at file-mmap-posix.c

Looks like there's some bogus information going on.... mapName seems right, but not much else?

Might be marshal related....

Better async I/O

Select/poll for IO is pretty primitive compared to what modern OSes offer. AIX has three choices:

  • Poll set, recommended nowadays; allegedly similar to epoll?

  • IOCPs, which seem to be API level compatible with Win32. Not making that up.

  • AIO

Considerations: performance, reliability, i compatibility, ease of adaptation.

I believe stuff for threadpool and utils would have to be changed.

NuGet doesn't work

According to upstream, NuGet seems to stress the threadpool machinery in a way that can cause it to lock up. This seems to affect all Mono platforms.

Some System.Decimal operations deliver garbage

What seems OK:

  • addition/subtraction: seems OK

  • division with small numbers: I fixed this enough to limp into building the BCL

What doesn't:

  • multiplication

  • FP conversions

  • large division

The code is very likely not completely endian safe; through debugging needs to be done.

Dependent module libmonosgen-2.0.a could not be loaded

I want to try out this great Port but when I follow the instructions and make a "mcs hello.cs" I always get the error "Could not load program /opt/mono/bin/mono: Dependent module libmonosgen-2.0.a (libmonosgen-2.0.so.1) could not be loaded. Could not load module libmonosgen-2.0.a (libmonosgen-2.0.so.1). System error: No such file or directory."
When I look into the mono/lib directory there is a "libmonosgen-2.0.a" and I also put all the directories into my PATH Variable so the system should find it.

Include MSBuild

xbuild is deprecated.

I have heard MSBuild is a pain to build; and best done cross-compiling from Windows? I'm also unsure about compatibility....

Mono objects take a while to build

tl;dr: libtool wants to be invoked with bash to avoid some diagnostics checks, but autotools invokes it with the original Bourne shell at /bin/sh. Set CONFIG_SHELL to bash in configure to fix it.

BoringTLS

Mono's managed TLS stack is deprecated and only supports TLS 1.0. BoringTLS requires cmake (installed) and will likely need some tweaking. Luckily, z Linux Mono maintainers have commited big endian fixes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.