xamarin-macios/tools/mtouch
Sebastien Pouliot 5b80e7f85c [mtouch][linker] Provide a more specific error code when OptimizeGeneratedCodeSubStep fails (#903)
The MT2001 error is a general, something went bad, in the linker code
base. The stack trace is often enough to track down issues but in some
cases it would be easier to ask customers for a specific assembly
(rather than their complete project) to investigate an issue.

Example:

error MT2103: Binding Optimizer failed processing `System.Void GoogleConversionTracking.Unified.GoogleConversionPing::.ctor()`.
--- inner exception
System.NullReferenceException: Object reference not set to an instance of an object
  at MonoTouch.Tuner.OptimizeGeneratedCodeSubStep.ProcessIsDirectBinding (Mono.Cecil.MethodDefinition caller, Mono.Cecil.Cil.Instruction ins) [0x00026] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs:264
  at MonoTouch.Tuner.OptimizeGeneratedCodeSubStep.ProcessCalls (Mono.Cecil.MethodDefinition caller, Int32 i) [0x00337] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs:197
  at MonoTouch.Tuner.OptimizeGeneratedCodeSubStep.Process (Mono.Cecil.MethodDefinition method) [0x0007b] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs:81
  at Xamarin.Linker.StateSubStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00004] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/CoreOptimizeGeneratedCode.cs:48
---
  at Xamarin.Linker.StateSubStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00014] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/CoreOptimizeGeneratedCode.cs:50
  at Mono.Tuner.SubStepDispatcher.DispatchMethod (Mono.Cecil.MethodDefinition method) [0x0001d] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:215
  at Mono.Tuner.SubStepDispatcher.BrowseMethods (ICollection methods) [0x0001c] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:167
  at Mono.Tuner.SubStepDispatcher.BrowseTypes (ICollection types) [0x0006b] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:145
  at Mono.Tuner.SubStepDispatcher.BrowseAssemblies (IEnumerable`1 assemblies) [0x00050] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:123
  at Mono.Tuner.SubStepDispatcher.Process (Mono.Linker.LinkContext context) [0x0000f] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:104
  at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00027] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/linker/Mono.Linker/Pipeline.cs:118
  at MonoTouch.Tuner.Linker.Process (MonoTouch.Tuner.LinkerOptions options, MonoTouch.Tuner.MonoTouchLinkContext& context, System.Collections.Generic.List`1& assemblies) [0x000ac] in /Users/poupou/git/xamarin/xamarin-macios/tools/mtouch/Tuning.cs:79

Right now the MT2001 would only include the inner exception, which does
not include any clue to which assembly caused the exception.

Note: The same pattern to be applied to other BaseSubStep subclasses in
separate commits.

Related to (but not the fix for) https://bugzilla.xamarin.com/show_bug.cgi?id=44701
2016-09-28 11:46:14 -04:00
..
.gitignore Refactor static registrar to produce both a header and a source file. 2016-05-17 11:23:47 +02:00
Application.cs [mtouch] Don't use nested Parallel.ForEach loops. (#888) 2016-09-23 16:03:23 -04:00
Assembly.cs Merge branch 'xcode8' 2016-09-09 15:29:37 -04:00
AssemblyResolver.cs [mtouch/mmp] Fix build after breaking cecil update in mono. 2016-09-01 18:28:35 +02:00
BitcodeConverter.cs Add mtouch to the build. 2016-04-24 14:47:27 -04:00
Info.plist.tmpl Add mtouch to the build. 2016-04-24 14:47:27 -04:00
Makefile [mtouch][linker] Provide a more specific error code when OptimizeGeneratedCodeSubStep fails (#903) 2016-09-28 11:46:14 -04:00
OldStaticRegistrar.cs [registrar] Fix the old static registrar according to internal signature changes. 2016-06-09 13:18:45 +02:00
SdkVersions.cs.in Add mtouch to the build. 2016-04-24 14:47:27 -04:00
Stripper.cs Add mtouch to the build. 2016-04-24 14:47:27 -04:00
Target.cs [mtouch] Add support for -j X to specify concurrency. (#876) 2016-09-22 09:21:20 -04:00
Tuning.cs [mtouch/mmp] Fix build after breaking cecil update in mono. 2016-09-01 18:28:35 +02:00
error.cs [mtouch][linker] Provide a more specific error code when OptimizeGeneratedCodeSubStep fails (#903) 2016-09-28 11:46:14 -04:00
monotouch-fixes.c Build our runtime. 2016-04-24 14:47:24 -04:00
mtouch.cs [mtouch] Add support for -j X to specify concurrency. (#876) 2016-09-22 09:21:20 -04:00
mtouch.csproj [mtouch][linker] Provide a more specific error code when OptimizeGeneratedCodeSubStep fails (#903) 2016-09-28 11:46:14 -04:00
mtouch.in [mtouch] Update script to use mono64. Fixes #44122 and others (#887) 2016-09-23 12:55:11 -04:00
simlauncher.m Add runtime variable to specify the exception marshalling modes, and mmp/mtouch options to select it. 2016-05-17 11:20:26 +02:00