O gVIM no Windows 7 falha devido ao COMCTL32.dll


1

Meu gVIM 7.4 (e também 7.3 antes disso) continua travando quando trabalho em arquivos .py (outros arquivos não causam o problema). As falhas aparecem periodicamente, mas de forma imprevisível - pelo menos para mim, não parece haver uma causa claramente identificável.

O relatório de erro me dá isso (perdoe o alemão):

Problemsignatur:
  Problemereignisname:  APPCRASH
  Anwendungsname:   gvim.exe
  Anwendungsversion:    7.4.280.0
  Anwendungszeitstempel:    5206345a
  Fehlermodulname:  COMCTL32.dll
  Fehlermodulversion:   6.10.7601.18837
  Fehlermodulzeitstempel:   553a8345
  Ausnahmecode: c0000005
  Ausnahmeoffset:   000abd26
  Betriebsystemversion: 6.1.7601.2.1.0.256.48
  Gebietsschema-ID: 1031
  Zusatzinformation 1:  0a9e
  Zusatzinformation 2:  0a9e372d3b4ad19135b953a78882e789
  Zusatzinformation 3:  0a9e
  Zusatzinformation 4:  0a9e372d3b4ad19135b953a78882e789

Usando o Event Manager, pude identificar o culpado:

C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\COMCTL32.dll

Parece haver bastante COMCTL32.dll na minha máquina, na verdade. Eu verifiquei o sistema usando sfc /scannowe DISM /Online /Cleanup-Image /Scanhealth, mas não foram identificados problemas. Outros aplicativos de GUI não mostram nenhum tipo de problema.

A julgar pelo fato de serem apenas arquivos py, deve ser um dos meus Plugins Python que está causando isso, mas todas são versões estáveis ​​e não foram usadas para causar problemas. Portanto, deve ser o meu sistema (Windows 7 Professional com todas as atualizações atuais, 64 bits).

Alguma idéia de como encontrar o problema que causa ou corrigir o arquivo dll?


1
Existe um sistema lógico , de como o Windows encontrará e localizar uma dll necessária, usada por um programa. Um programa pode ignorar essa ordem indicando especificamente que deseja um arquivo estático específico. Portanto, determine qual deve ser a data, o tamanho e a versão atuais da dll, localize um arquivo que corresponda a essas informações e coloque-o no diretório do programa. É extremamente estranho que o programa esteja usando um arquivo localizado no diretório WinSxS. Esse não é um diretório normalmente usado.
Ramhound

"deve ser um dos meus plugins Python" - você deve eliminar esta possibilidade. Desative os plugins, se a falha ocorrer, você saberá que não são seus plugins. Eu apostaria, já que o aplicativo está usando o arquivo de origem do diretório WinSxS (eu sei que não está corrompido porque os comandos que você executou não indicam um problema) Aposto que o problema é causado por um plug-in
Ramhound

@ Ramhound: Tenho certeza de que é um dos plugins python, porque não há problemas quando eu edito outros arquivos. Os plugins no vim são carregados dependendo do tipo de arquivo. Obrigado pela dica com a dll. Eu tentei colocar um no dir certo, vamos ver o que vai acontecer. No entanto, a página que você vinculou disse que as DLLs já carregadas serão carregadas em primeiro lugar, portanto, presumo que isso não ajude.
Zakum

O link indica a ordem que o Windows usará para localizar uma DLL. Aponto isso porque você indicou que seu sistema possui muitas cópias, a menos que a única cópia usada estivesse corrompida, a dll não tem culpa. Daí a razão pela qual lhe pedi para encontrar uma boa cópia e colocá-la no primeiro local (o diretório com o próprio aplicativo) para eliminar essa possibilidade.
Ramhound 30/11

"Se uma DLL com o mesmo nome de módulo já estiver carregada na memória, o sistema verificará apenas o redirecionamento e um manifesto antes de resolver a DLL carregada, independentemente do diretório em que esteja. O sistema não procura a DLL." - Interpreto isso da maneira que nenhuma pesquisa é realizada, se o COMCTL32.dll já estiver carregado na memória. Neste caso, uma cópia no diretório aplicativo não ajudaria, direita)?
Zakum
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.