Recentemente, tive que lidar com a situação em que um aplicativo falharia com a assinatura do problema, como:
Problem Event Name:BEX64
...
Fault Module Name:StackHash_1dc2
Fault Module Version:0.0.0.0
Fault Module Timestamp:00000000
Exception Offset:0000000000000000
Exception Code:c0000005
Exception Data:0000000000000008
OS Version:6.1.7600.2.0.0.274.10
Existem algumas referências de que BEX
significa "Exceção de estouro de buffer" e está de alguma forma relacionado à Prevenção de execução de dados. Também o termo "ramificação de erros estendidos" é mencionado. Mas não muito de detalhes. O melhor que pude encontrar é uma breve menção em um exemplo de assinatura de erro de DEP no artigo do technet:
Indicates a buffer overflow (/GS) or DEP exception (BEX64 indicates a buffer overflow (/GS) or DEP exception on 64-bit versions of Windows)
Fonte: "Prevenção de execução de dados"
Por isso, minha pergunta. O que é BEX64
? Em quais casos um evento com esse nome seria produzido? Existe alguma lista de todos os códigos de assinatura de erro?
Em uma nota lateral, o problema que eu tive foi que o conjunto de instruções AVX estava disponível no nível da CPU, mas não suportado no nível do sistema operacional (Windows 2008 R2 RTM). Uma das DLLs que estão sendo carregadas usava a função msvcr120!log
, que estava chamando uma das instruções do AVX, o que levou a uma falha.