Pourquoi « Optimize code » est nécessaire pour être mis en marche pour mon programme pour courir sans se briser?

StackOverflow https://stackoverflow.com/questions/2068482

Question

On m'a donné cette application WPF, quand j'ai essayé d'exécuter le programme en mode débogage, il se briserait avant d'arriver à Windows1.xml. J'ai essayé plus tard en cours d'exécution en mode de sortie et il courrais avec succès. Je rétréci vers le bas, je devais tourner sur « Optimiser le code » pour que cela fonctionne.

Remarque:. Les points d'arrêt, d'entrer dans de débogage, et l'arrêt sur les exceptions throw ne fonctionnent pas

Modifier L'exception était WPF (très populaire et pas utile) exception générique:

{ "Impossible de créer une instance de 'principal' défini dans l'assembly 'VCell2, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null'. Une exception a été levée par la cible d'un appel. Erreur dans le balisage Fiche ligne 'Window1.xaml' 1 Position 9. "}   Source = "PresentationFramework"   LineNumber = 1   LinePosition = 9

Modifier L'intérieur - exception interne: { "Le module spécifié est introuvable (Exception de HRESULT: 0x8007007E).": Null}

Il y avait là la trace de la pile, je recevais:

   at System.Windows.Markup.XamlParseException.ThrowException(String message, Exception innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, Type objectType)
   at System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext, Int32 lineNumber, Int32 linePosition, String message, Exception innerException)
   at System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine(String message, Exception innerException)
   at System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)
   at System.Windows.Markup.BamlRecordReader.GetElementAndFlags(BamlElementStartRecord bamlElementStartRecord, Object& element, ReaderFlags& flags, Type& delayCreatedType, Int16& delayCreatedTypeId)
   at System.Windows.Markup.BamlRecordReader.BaseReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
   at System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
   at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
   at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
   at System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()
   at System.Windows.Markup.TreeBuilder.Parse()
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
   at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
   at System.Windows.Application.DoStartup()
   at System.Windows.Application.<.ctor>b__0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at VCell2.App.Main() in C:\Users\wandrus\Documents\Visual Studio 2008\Projects\VCell2\VCell2\obj\Debug\App.g.cs:line 0

Modifier J'ai essayé de l'exécuter WinDBg (ne sais pas si je fais cela correctement)

ModLoad: 77310000 773b0000   C:\Windows\system32\ADVAPI32.dll
ModLoad: 76a30000 76adc000   C:\Windows\system32\msvcrt.dll
ModLoad: 76c60000 76c79000   C:\Windows\SYSTEM32\sechost.dll
ModLoad: 76ae0000 76b82000   C:\Windows\system32\RPCRT4.dll
ModLoad: 770c0000 77117000   C:\Windows\system32\SHLWAPI.dll
ModLoad: 76940000 7698e000   C:\Windows\system32\GDI32.dll
ModLoad: 76c80000 76d49000   C:\Windows\system32\USER32.dll
ModLoad: 778e0000 778ea000   C:\Windows\system32\LPK.dll
ModLoad: 77120000 771bd000   C:\Windows\system32\USP10.dll
ModLoad: 76ea0000 76ebf000   C:\Windows\system32\IMM32.DLL
ModLoad: 76b90000 76c5c000   C:\Windows\system32\MSCTF.dll
ModLoad: 6c1b0000 6c1b5000   C:\Windows\system32\avgrsstx.dll
ModLoad: 57310000 578a1000   C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
ModLoad: 756a0000 7573b000   C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4918_none_d089094c442eb5ff\MSVCR80.dll
ModLoad: 75c40000 76886000   C:\Windows\system32\shell32.dll
ModLoad: 773c0000 7751b000   C:\Windows\system32\ole32.dll
ModLoad: 75810000 7581b000   C:\Windows\system32\profapi.dll
ModLoad: 53de0000 548d8000   C:\Windows\assembly\NativeImages_v2.0.50727_32\mscorlib\70603943245265de9397091048337dda\mscorlib.ni.dll
ModLoad: 757a0000 757ac000   C:\Windows\system32\CRYPTBASE.dll
ModLoad: 744f0000 74530000   C:\Windows\system32\uxtheme.dll
ModLoad: 52ea0000 53639000   C:\Windows\assembly\NativeImages_v2.0.50727_32\System\ade9214f5bce88462742bce1278864c0\System.ni.dll
ModLoad: 57ae0000 57e0c000   C:\Windows\assembly\NativeImages_v2.0.50727_32\WindowsBase\c7663f3a74fb6aa480c60108634d285a\WindowsBase.ni.dll
ModLoad: 03eb0000 04a5b000   C:\Windows\assembly\NativeImages_v2.0.50727_32\PresentationCore\c79b7f336e6099b8c94081f975e9411e\PresentationCore.ni.dll
ModLoad: 55240000 55fec000   C:\Windows\assembly\NativeImages_v2.0.50727_32\PresentationFramewo#\7d80b7d912fbf0f7532f1b9adc235646\PresentationFramework.ni.dll
ModLoad: 00e50000 01255000   PresentationCore.dll
ModLoad: 00e50000 01255000   PresentationCore.dll
ModLoad: 539d0000 53b7c000   C:\Windows\Microsoft.NET\Framework\v3.0\WPF\wpfgfx_v0300.dll
ModLoad: 76990000 76a1f000   C:\Windows\system32\OLEAUT32.dll
ModLoad: 51520000 51754000   C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Core\e78709bedd31f237055667ad99b9451f\System.Core.ni.dll
ModLoad: 6cbc0000 6cc1b000   C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorjit.dll
ModLoad: 637d0000 638c1000   C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Configuration\9c2727d244dcc72fbefcf1ae22660f35\System.Configuration.ni.dll
ModLoad: 57f20000 58456000   C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Xml\93d38ea87365928456313035f8091126\System.Xml.ni.dll
ModLoad: 74130000 74143000   C:\Windows\system32\dwmapi.dll
ModLoad: 60340000 60348000   C:\Windows\Microsoft.NET\Framework\v2.0.50727\culture.dll
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): CLR exception - code e0434f4d (first chance)
(1e2c.738): C++ EH exception - code e06d7363 (first chance)
(1e2c.738): CLR exception - code e0434f4d (first chance)
(1e2c.738): CLR exception - code e0434f4d (first chance)
(1e2c.738): CLR exception - code e0434f4d (first chance)
(1e2c.738): CLR exception - code e0434f4d (!!! second chance !!!)
eax=0025e034 ebx=e0434f4d ecx=00000001 edx=00000000 esi=0025e0bc edi=002d66d8
eip=75acb4f4 esp=0025e034 ebp=0025e084 iopl=0         nv up ei pl nz ac po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000212
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\system32\KERNELBASE.dll - 
KERNELBASE!RaiseException+0x54:
75acb4f4 c9              leave
Était-ce utile?

La solution

Vous devez fournir plus d'informations. Quelle est l'exception? Il pourrait être qu'un type est référencé à l'exécution qui ne peut être résolu. Si le code n'est pas utilisé, l'optimiseur peut simplement omettre de JIT alors en mode débogage, il pourrait être une exception déclenche de charge de type. Qui sait si. Sans plus d'informations, il serait impossible de dire.

modifier en réponse pour la mise à jour dans votre question, il semble que il y a un type appelé principal qui est lancer une exception dans son constructeur d'instance ou constructeur statique. Il pourrait aussi être un initialiseur sur le terrain qui est le déclenchement cela. Si vous pouvez attraper l'exception, vérifiez son InnerException qui TargetInvocationExceptions contiennent habituellement. Cela vous donnera plus d'informations.

modifier vous avez indiqué que l'exception interne est un problème de chargement d'assemblage qui est ce que je pensais au départ. si vous manquez quelque part une référence. en particulier, vous faites référence probablement une DLL qui, à son tour référence à une autre DLL qui ne peut pas être localisé. Vous aurez besoin de savoir quel assemblage ne peut être résolu. Vous pouvez utiliser l'outil fuslogvw.exe afficher les erreurs de liaison assemblage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top