2012-04-03 9 views
9

¿Quién es Noah Richards y por qué su nombre en la pila de Visual Studio se bloquea? Me refiero a este seguimiento de pila específico ... (en una táctica menos importante, ¿por qué sucedería esto? Es 100% reproducible después de agregar un paréntesis de apertura en un miembro protegido de una clase en una solución de proyecto de 50 ...¿Quién es Noah Richards, y cuál es su relación con el bloqueo VS2010?

el error en cuestión es:

AlignAssignments.dll!NoahRichards.AlignAssignments.CommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0xb2 bytes 


(Attempted to read or write protected memory. This is often an indication that other memory is corrupt.) 

Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandFilterWrapper.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x71 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
CodeAlignment.dll!CMcG.CodeAlignment.CommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0xa7 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
***AlignAssignments.dll!NoahRichards.AlignAssignments.CommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut)*** + 0xb2 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
CopyAsHtml.dll!Microsoft.VisualStudio.Text.Formatting.Implementation.CommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x16b bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
Microsoft.VisualStudio.AutoBraceComplete.dll!Microsoft.VisualStudio.AutoBraceComplete.AutoBraceCommandFilter.GetTypingAction.AnonymousMethod__0() + 0x28 bytes 
Microsoft.VisualStudio.AutoBraceComplete.Impl.Basic.dll!Microsoft.VisualStudio.AutoBraceComplete.Impl.Basic.Pairs.StringBasedPairCreator.OnTypingOpeningCharacter(Microsoft.VisualStudio.AutoBraceComplete.Context.IContext context, char typedChar, System.Func<Microsoft.VisualStudio.AutoBraceComplete.Pair.PairResult> typingAction) + 0x222 bytes 
Microsoft.VisualStudio.AutoBraceComplete.dll!Microsoft.VisualStudio.AutoBraceComplete.Pairs.PairManager.HandleTypeChar(char typedChar, System.Func<Microsoft.VisualStudio.AutoBraceComplete.Pair.PairResult> action) + 0xe5 bytes 
Microsoft.VisualStudio.AutoBraceComplete.dll!Microsoft.VisualStudio.AutoBraceComplete.AutoBraceCommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0xc8 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
OrganizeVBImports.dll!Microsoft.VisualStudio.OrganizeVBImports.CommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x314 bytes  
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
QuickFind.dll!Microsoft.QuickFind.CommandBlocker.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x45 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandFilterWrapper.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x71 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandFilterWrapper.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x71 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x20 bytes 
SolutionNavigator.dll!Microsoft.VisualStudio.Labs.CommandFilter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0xd3 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.Exec(ref System.Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, System.IntPtr pvaIn, System.IntPtr pvaOut) + 0x163 bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.VsKeyboardFilter.SendCommand(System.Guid cmdGroup, uint cmdID, object inParam) + 0x6f bytes 
Microsoft.VisualStudio.Editor.Implementation.dll!Microsoft.VisualStudio.Editor.Implementation.VsKeyboardFilter.TextInput(System.Windows.Input.TextCompositionEventArgs args) + 0x77 bytes 
Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Editor.Implementation.KeyProcessorDispatcher.DispatchTextInputEvents.AnonymousMethod__0(Microsoft.VisualStudio.Text.Editor.KeyProcessor p, System.Windows.Input.TextCompositionEventArgs args) + 0xb bytes 
Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Editor.Implementation.KeyProcessorDispatcher.Dispatch<System.__Canon>.AnonymousMethod__1a() + 0x18 bytes 
Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Utilities.GuardedOperations.CallExtensionPoint(object errorSource, System.Action call) + 0x2d bytes  
Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Editor.Implementation.KeyProcessorDispatcher.Dispatch<System.Windows.Input.TextCompositionEventArgs>(System.Action<Microsoft.VisualStudio.Text.Editor.KeyProcessor,System.Windows.Input.TextCompositionEventArgs> action, System.Windows.Input.TextCompositionEventArgs args) + 0x150 bytes  
Microsoft.VisualStudio.Platform.VSEditor.dll!Microsoft.VisualStudio.Text.Editor.Implementation.KeyProcessorDispatcher.MakeHandler.AnonymousMethod__17(object sender, System.Windows.Input.TextCompositionEventArgs args) + 0x1c bytes 
PresentationCore.dll!System.Windows.Input.TextCompositionEventArgs.InvokeEventHandler(System.Delegate genericHandler, object genericTarget) + 0x31 bytes  
PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler, object target) + 0x29 bytes 
PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target, System.Windows.RoutedEventArgs routedEventArgs) + 0x3e bytes  
PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) + 0xbe bytes 
PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender, System.Windows.RoutedEventArgs args) + 0x79 bytes 
PresentationCore.dll!System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs args) + 0x41 bytes 
PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs args, bool trusted) + 0x2c bytes  
PresentationCore.dll!System.Windows.Input.InputManager.ProcessStagingArea() + 0x1ff bytes 
PresentationCore.dll!System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs input) + 0x45 bytes 
PresentationCore.dll!System.Windows.Input.TextCompositionManager.UnsafeCompleteComposition(System.Windows.Input.TextComposition composition) + 0x7e bytes 
PresentationCore.dll!System.Windows.Input.TextCompositionManager.PostProcessInput(object sender, System.Windows.Input.ProcessInputEventArgs e) + 0x41d bytes  
PresentationCore.dll!System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(System.Windows.Input.ProcessInputEventHandler postProcessInput, System.Windows.Input.ProcessInputEventArgs processInputEventArgs) + 0x9d bytes  
PresentationCore.dll!System.Windows.Input.InputManager.ProcessStagingArea() + 0x23b bytes 
PresentationCore.dll!System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs input) + 0x45 bytes 
PresentationCore.dll!System.Windows.Input.TextCompositionManager.UnsafeStartComposition(System.Windows.Input.TextComposition composition) + 0x74 bytes 
PresentationCore.dll!System.Windows.Input.TextCompositionManager.PostProcessInput(object sender, System.Windows.Input.ProcessInputEventArgs e) + 0x6ca bytes  
PresentationCore.dll!System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(System.Windows.Input.ProcessInputEventHandler postProcessInput, System.Windows.Input.ProcessInputEventArgs processInputEventArgs) + 0x9d bytes  
PresentationCore.dll!System.Windows.Input.InputManager.ProcessStagingArea() + 0x23b bytes 
PresentationCore.dll!System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs input) + 0x45 bytes 
PresentationCore.dll!System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport inputReport) + 0x62 bytes 
PresentationCore.dll!System.Windows.Interop.HwndKeyboardInputProvider.ProcessTextInputAction(System.IntPtr hwnd, MS.Internal.Interop.WindowMessage msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) + 0x189 bytes 
PresentationCore.dll!System.Windows.Interop.HwndSource.OnPreprocessMessage(object param) + 0x2c6 bytes 
WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) + 0x53 bytes 
WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source, System.Delegate method, object args, int numArgs, System.Delegate catchHandler) + 0x42 bytes  
WindowsBase.dll!System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) + 0xb4 bytes  
PresentationCore.dll!System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(ref System.Windows.Interop.MSG msg, ref bool handled) + 0xc6 bytes 
PresentationCore.dll!System.Windows.Interop.HwndSource.WeakEventPreprocessMessage.OnPreprocessMessage(ref System.Windows.Interop.MSG msg, ref bool handled) + 0x35 bytes  
WindowsBase.dll!System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(ref System.Windows.Interop.MSG msg) + 0x3d bytes  
Microsoft.VisualStudio.Platform.WindowManagement.dll!Microsoft.VisualStudio.Platform.WindowManagement.WindowManagerService.PreTranslateInput(Microsoft.VisualStudio.OLE.Interop.MSG[] lpmsg, bool handled) + 0xa5 bytes 
[Native to Managed Transition] 
+0

http://stackoverflow.com/users/128945/noah-richards –

+0

Escribió un complemento que está utilizando. – jrummell

+0

Mi Google-Fu era débil ... http://blogs.msdn.com/b/noahric/archive/2011/02/07/moving-on.aspx – Joebone

Respuesta

10

Noah Richards es uno de los desarrolladores que trabajó en la versión 2010 de Visual Studio. Ahora trabaja en Google, pero tiene varias extensiones de Visual Studio disponibles en la galería de Visual Studio (y participó en varias otras).

Parece que tiene su extensión "Alinear asignaciones" instalada y se está ejecutando un error al procesar un golpe de tecla.

También participa en stack overflow

+0

¡Es un mundo pequeño después de todo! ¡Me pareció gracioso tener el nombre de alguien en una pila! Como resulta que I * DO * tiene esa extensión instalada, sin embargo, el bloqueo aparece constantemente en varias de nuestras máquinas, extensiones o no. Sin embargo, gracias por responder a mis dos preguntas :) – Joebone

+4

Tenga en cuenta que no se está ejecutando en el error, simplemente sucede que está en la cadena de comandos, cortesía de VS todo impresionante en el mundo está en el comportamiento de la cadena de comandos-cadena-llamada :-p –

5

Noé fue uno de los desarrolladores de Visual Studio 2010. cree que ahora trabaja para Google es un user here, por lo que quizás puede publicar más detalles

+1

Después de haber sido capaz de reproducir este bloqueo en máquinas sin Extensiones, me he dado cuenta de que la causa es más probable en otros lugares. Mañana intentaré tomar un rastro de la pila de una máquina con una instalación limpia y ver si eso ayuda a reducir la causa. – Joebone

1

se parece.? instaló su assignment alignment plugin.

+0

Eso lo hice, y ¡muy bien también! Sin embargo, me he dado cuenta de que el seguimiento de la pila en este caso es engañoso, ya que la falla es reproducible en máquinas sin extensiones instaladas de ninguna manera. Creo que debería tomar uno más útil de uno de los suyos. – Joebone

1

Noah escribió una serie de extensions for Visual Studio y es posible que uno de ellos pasa a ser cargado en su instalación. Algunos terminaron en Power Tools y luego en Visual Studio.

+0

Es ciertamente posible en mi caso :) ¡Soy una especie de adicto a la extensión que puede ser como disparársele a usted mismo en el pie a veces! Sin embargo, en este caso particular, esta no parece ser la causa. O al menos no la única causa :) ¡Gracias por tomarse el tiempo para responder! – Joebone

10

¡Soy famoso!

Si eres curioso, supongo que el verdadero culpable es la extensión AutoBraceComplete (o tal vez la extensión CodeAlignment) ensuciar las cosas de alguna manera que rompe el manejo posterior a la orden. AlignAssignments solo se reenvía en las llamadas de Exec que no son para el comando de alineación de asignaciones. Puede ver cómo es el ejecutivo de AlignAssignments: https://github.com/NoahRic/AlignAssignments/blob/master/CommandFilter.cs

Nota al margen: no tengo idea de qué hice para poner mi nombre allí; tal vez fue establecido como el nombre de mi empresa, ¿entonces VS decidió que yo necesitaba ser famoso? Ah, y el "CMcG" es en realidad "Chris McGrath" que escribió la extensión CodeAlignment, por lo que alguien debería publicar una pregunta sobre Overflow de Stack sobre él también :) ¡No debería ser la única persona famosa!

+1

Eso es genial. Tengo la sensación de que muchas de las entradas en el seguimiento de la pila no son relevantes para el problema en absoluto. En las extensiones de Visual Studio, tiene un método que verifica si el comando es uno que desea procesar. Si no es así, pasa a la siguiente. Esto llevaría a que se agreguen muchas entradas al seguimiento de la pila, lo que no ha hecho más que llamar al siguiente enlace de la cadena. P.S. McGrath no McGraff;) –

Cuestiones relacionadas