Compartilhar via


Notas de versão

WinDbg logo with a magnifying glass inspecting bits.Logotipo WinDbg com lupa inspecionando bits.

Este artigo fornece informações sobre as novidades no WinDbg. Versões anteriores foram lançadas como WinDbg Preview.

1.2511.21001.0

Novos recursos

  • Seleção aprimorada de arquivos e pastas com gerenciamento baseado em prioridade estendido para arquivos CAB, visando um melhor direcionamento dos arquivos de despejo.
  • Downloads aprimorados de arquivos de símbolo de ELF, DWARF e Mach-O com registro em log e mensagens de status aprimorados
  • A variável de ambiente DBGHELP_DIA_PATH agora tem precedência sobre os módulos atualmente carregados para um melhor gerenciamento de símbolos.
  • Melhorias na indexação de nomes de membro para um melhor desempenho na navegação e pesquisa de símbolos

Correções de bug

  • Problema resolvido em que as gravações de memória em destinos linux dinâmicos falhavam
  • Correção do carregamento e funcionalidade da extensão SOS e da DAC quando conectada a destinos de depuração dinâmica
  • Problema resolvido em que executáveis de processo anexados apareciam como 'imageXXXXXXXX' em vez de nomes reais
  • Corrigido código de download do NuGet.exe que foi quebrado pela implementação de cache negativa
  • Correção de atrasos na interface do usuário ao usar exdigdbsrv
  • Exceções de WMI tratadas pelo verificador de compatibilidade de solução paliativa do USB 3.1
  • Avisos incorretos (C6518) removidos das anotações SAL no wdbgexts.h.
  • Exibição de informações de tipo corrigida para os tipos char16_t e char32_t em plataformas Linux

Melhorias gerais da interface do usuário

  • Adicionar nova opção de Faixa de Opções Simplificada, que reduz o volume vertical da Faixa de Opções
  • Aceleração de hardware gráfico habilitada ao executar em sessões RDP (Protocolo de Área de Trabalho Remota)
  • Desempenho de atualização melhorado na janela de Desmontagem
  • Dimensionamento de DPI corrigido para menus de contexto da janela de ferramentas em diferentes configurações de monitor
  • Tornou as informações de versão selecionáveis na página Sobre para facilitar a cópia
  • Suporte removido para a tecnologia IDNA obsoleta (Nomes de Domínio Internacionalizado em Aplicativos)
  • Limpar o log do depurador para excluir entradas de inicialização de aplicativos antecipadas da galeria de extensões e outras operações internas

Depuração de viagem no tempo (TTD)

  • 1.11.553 -> 1.11.567

1.2510.7001.0

Melhorias de interface do usuário e experiência

  • Abrir qualquer instância de janela de memória na Barra de Ferramentas

Depuração & melhorias de desempenho

  • Impedido o roubo de retornos de chamada da instrumentação de processos para aprimorar a confiabilidade na depuração.
  • Histórico de variáveis de TTD (Depuração de Viagem no Tempo) aprimorado com preferência de formato tabular para melhor visualização de dados
  • Correção de falha no histórico de variáveis ao reutilizar geradores, garantindo capturas de função adequadas
  • Avaliador aprimorado para pontos de interrupção ambíguos para lidar com cenários de depuração mais complexos
  • Corrigida a exibição da coluna de Publicador vazia para aplicativos da loja e processos PLM

Atualizações da API TTD &Replay

  • Comando !tt atualizado para fornecer ajuda em uma linha e a posição atual ao ser chamado sem argumentos, em vez de mover para o início do rastreamento.
  • Adição da disponibilidade experimental do SDK da API de Reprodução para integração externa
  • Métodos aprimorados do modelo de dados de histórico de variáveis para melhorar o acesso programático
  • Correção de várias otimizações nas operações de reprodução de TTD e melhorias no suporte a callbacks.

Correções de erros e estabilidade

  • Corrigido o relatório de erros que mostrava incorretamente "erro: a operação foi concluída com êxito"
  • Resolveram problemas de processamento de URL do host nos comandos fasttfgitview
  • Texto de erro aprimorado em torno da resolução de símbolos para fornecer comentários mais claros
  • Correção de problemas no carregamento de PDBs para assemblies .NET com mapeamento plano no Linux
  • Erro de leitura de variável não inicializada resolvido em componentes de depuração
  • Correção de problemas de pesquisa de arquivos da galeria de extensões com nomes de arquivo curtos

1.2508.27001.0

Novos recursos

  • Adicionada uma opção para desabilitar a aceleração de hardware gráfico para o WinDbg.
  • Adicionada uma nova .AlternateFunctions propriedade em <frame>.Attributes.SourceInformation.

Correções de bug

  • Correção de um problema em que a página Iniciar Depuração não era atualizada depois de abrir uma caixa de diálogo.
  • Corrigido um problema com itens do menu de abas conectados a dispositivos que não estavam acessíveis à automação da interface do usuário.
  • Corrigido um problema em que a entrada de comando não confirmada era perdida quando você navegava no histórico de comandos.
  • Correção do manuseio da roda do mouse para rolagem corretamente suave (mouses com rodas lisas e trackpads).
  • Corrigido o comportamento de step-over recursivo enganoso na depuração x86 de 32 bits quando prólogos de função chamados __SEH_prolog4.
  • Corrigido um erro na configuração .AllowNugetExeUpdate de galerias de extensões baseadas em NuGet.
  • Corrigido um bug ao ler símbolos DWARFv5 em torno de tabelas .debug_names e índices de nome.
  • Comportamento de etapa corrigido para linhas de origem com várias chamadas filtradas por etapas.
  • Correção do erro causado por uma cadeia de caracteres de versão natvis inválida.
  • Correção da transmissão de bloco de ambiente para CreateProcessW a depuração remota.
  • Correção dos comandos !percpu e !allpercpu para ponteiros de CPU alocados dinamicamente por meio de alloc_percpu no kernel do Linux.
  • Corrigido um problema com a numeração de CPU em sessões de depuração do kernel Linux.
  • Correção de rótulos de função de janela de desmontagem ausentes para destinos de símbolo de banco de dados não-programa (PDB).
  • Correção da manipulação de realocações de espaço reservado em binários ELF.
  • Corrigido o problema de dupla liberação na manipulação de símbolos DWARF de DW_OP_fbreg.
  • Correção de regressão no código de coleta de despejo de memória que impedia a coleta completa de despejos de memória para processos x64 emulados em ARM64.

Melhorias gerais da interface do usuário

  • Fez melhorias em como o WinDbg restaura a posição da janela quando você altera monitores de resoluções diferentes. O WinDbg também agora salva e restaura posições ajustadas.
  • Rolagem horizontal implementada usando a roda do mouse enquanto você segura a tecla Shift.
  • Atualizado o seletor abrir pasta para usar a caixa de diálogo moderna.

1.2506.12002.0

Novos recursos

O WinDbg agora é fornecido com os depuradores do modo de console (cdb.exe/ntsd64.exe/kd.exe). Para desambiguar os binários uns dos outros e não interferir nas cópias existentes das ferramentas, os binários incluem o nome da arquitetura:

  • cdbARM64.exe/cdbX64.exe/cdbX86.exe
  • kdARM64.exe/kdX64.exe/kdX86.exe
  • ntsdARM64.exe/ntsdX64.exe/ntsdX86.exe

Mais recursos:

  • O título da janela de ferramentas do modelo de dados pode ser personalizado por meio do $OpenDmoToolwindow comando e também pode ser alterado por meio do menu de contexto da barra de título.
  • Nova configuração do depurador para habilitar downloads HTTP paralelos de arquivos de símbolos. Essa opção está habilitada por padrão.

Correções de bug

  • Correção de como o caminho de destino é salvo para arquivos de despejo abertos por meio da linha de comando (-z) para que você possa abri-lo com êxito no menu Recentes .
  • Correção de uma falha na janela editor de script .
  • Corrigido como o WinDbg lida com terminações de linha inconsistentes em arquivos de origem abertos na janela Origem para fornecer uma exibição mais consistente dos arquivos de origem.
  • Correção de um problema em que as credenciais não eram renovadas para servidores de símbolo HTTP quando você usa o novo recurso de downloads paralelos.
  • Correção de um problema em que as propriedades de objetos de modelo de dados não eram enumeradas corretamente em extensões JavaScript.
  • Correção de um problema em que o texto da coluna desapareceu quando reordenado por meio de arrastar.
  • Correção de um problema em que a configuração da filtragem de eventos por meio de opções de linha de comando não era aplicada ao destino de depuração na inicialização.
  • Correção de um problema em que, às vezes, desencaixar uma janela de ferramenta resultava em conteúdo em branco.
  • Corrigido um problema em que minidumps de processos x64 emulados em computadores ARM64 não podiam ser depurados.
  • Correção de um problema em que pontos de interrupção ambíguos travavam o depurador.
  • Corrigido um problema em que o GDBServer travava na saída do processo ao depurar um processo em execução no Linux.
  • Correção de vários problemas relacionados à depuração de extensões do JavaScript (.scriptdebug), incluindo uma melhor enumeração de propriedades e a correção de um problema de travamento.

Melhorias gerais da interface do usuário

  • O pop-up de sugestão de comando foi alinhado ao cursor. Agora, ele mostra apenas as sugestões de conclusão em vez de tudo antes do cursor.
  • Forneceu mais detalhes para a caixa de diálogo de erro ao abrir o alvo de depuração. Para falhas de despejo aberto, forneceu um hiperlink para um arquivo TSG que não foi aberto.
  • Deu às barras de título da janela de ferramentas o mesmo menu de contexto que a guia encaixada.
  • Foram feitas melhorias visuais nas janelas Locais, Watch e Modelo.
  • TTD (Depuração de Viagem no Tempo) atualizada para a versão 1.11.532. Para obter mais informações, consulte as notas de versão do TTD.

1.2502.25002.0

Novos recursos

Janela comando IntelliSense

O prompt de entrada de comando mostra automaticamente as conclusões sugeridas quando o primeiro caractere digitado é . (ponto), ! (bang) ou $ (sinal de dólar).

Sugestões também podem ser invocadas com o atalho de comando Ctrl+Barra de espaços.

Depuração de instantâneo

Quando o WinDbg depura processos dinâmicos localmente, ele também pode tirar instantâneos do processo. Para alternar entre instantâneos e o processo ao vivo, utilize os ícones na guia Extensões.

Da mesma forma, o WinDbg pode anexar a um instantâneo de processo de um processo sem suspendê-lo por meio de uma snapshot:pid=<process pid in hex> cadeia de caracteres de protocolo em Connect to remote debugger.

Novas APIs de modelo de dados

  • Debugger.Utility.Symbols.GetTypeInformation

    Retorna as informações de tipo associadas a qualquer objeto passado. Um argumento opcional permite o desreferenciamento automático (um nível) de ponteiros se você quiser o tipo subjacente a qualquer ponteiro (ou ref).

  • Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)

    Cria um novo filtro de passos localizado no namespace juntamente com todas as APIs de criação de ponto de interrupção.

  • Debugger.State.StepFilters

    Retorna a lista de filtros de etapa que têm as propriedadesId, Description, Typee PatternIsEnabled. Há um .Remove() método em objetos de filtro de etapa.

Experiência de depuração do CLR (Common Language Runtime) aprimorada sem clrcomposition.dll

O componente dbgeng.dll redistribuível melhora o suporte de caminhada de pilha para quadros CLR (Common Language Runtime) sem a necessidade clrcomposition.dll de estar presente.

Melhorias aleatórias

  • Suporte aprimorado para depuração do kernel do Linux (especialmente para versões do kernel 6.11 e superiores).
  • Adicionado suporte para páginas KDUMP com compressão ZSTD.

Correções de bug

  • Sistema operacional de servidor atualizado (SOS) para a versão 9.0.557512.
  • Correção de uma regressão de desempenho na verificação de assinaturas revogadas ao carregar msdia140.dll.
  • Correção de uma falha ao ler o contexto XSTATE.
  • Corrigido o realce do ponto de interrupção desabilitado na janela Disassembly para diferenciá-lo de um ponto de interrupção habilitado.
  • Foi corrigido um crash ao fechar uma janela de ferramenta flutuante.
  • Corrigido um problema onde a posição atual da janela Timeline não era preenchida consistentemente após a abertura de um rastreamento recente.
  • Correção de um problema nas janelas Desmontagem e Memória , que nem sempre foram atualizadas após a inserção de um novo valor.
  • Correção do esquema de cores da barra de título no tema escuro.
  • Correção da apresentação de pontos de interrupção adiados na janela Pontos de Interrupção em que a Localização mostrava 0x0 em vez da expressão original inserida quando foi criada. Ele também tem um ícone distinto, que indica que não está vinculado.
  • Correção de um problema nas janelas Locais e Inspeção em que clicar com o botão direito do mouse em um item visível fazia com que a exibição rolasse para cima.
  • Problemas corrigidos com natvis. Para obter mais informações, consulte o relatório de bug original.
  • Corrigido kd o spam do depurador com a mensagem Error getting port connector information. Para obter mais informações, consulte o relatório de bug original.
  • Corrigido um problema onde gc ativava pontos de interrupção condicionais quando a condição era falsa.
  • Foi corrigido um problema para que os registros YMM e ZMM agora possam ser exibidos ao depurar um rastreamento de TTD.

Correções de acessibilidade

  • Navegação de teclado aprimorada para janelas Locais, Observação e Pontos de Interrupção.
  • Melhoria na legibilidade visual da barra de ferramentas e das janelas Locals, Watch e Breakpoints.
  • Melhor usabilidade do leitor de tela nas janelas de Locais, Observação e de Pontos de Interrupção.
  • Manteve o foco, a seleção e a rolagem anteriores do teclado, quando possível, para editar itens nas janelas Locais, Inspeção e Pontos de Interrupção .
  • Suporte geral aprimorado para dimensionamento de texto do Windows.

Melhorias gerais da interface do usuário

  • Foi adicionado um comando para mover o foco de uma caixa de texto de entrada de comando para um painel de saída de comando no modo Marcar alternável (semelhante a um prompt de comando). O atalho é Ctrl+M.
  • Adicionado um item de menu de contexto Go to Disassembly à janela Pontos de Interrupção .
  • Adicionado um menu de contexto à janela Desmontagem para Executar até Instrução, Definir Ponteiro de Instrução, Ir para Origem, Alternar Ponto de Interrupção e Alternar Ponto de Interrupção.

Depuração de viagem no tempo

1.2410.11001.0

Alteração da falha

Agora, dbghelp.dll liga-se dinamicamente a msdia140.dll. Essa alteração deve afetar apenas as ferramentas que redistribuem dbghelp.dll sem incluir também msdia140.dll. Os pacotes NuGet que incluem dbghelp.dll também incluem msdia140.dll.

Correções de bug

  • Corrigido um problema em que os aliases de função da galeria de extensões não estavam associados aos gatilhos de carga.
  • Correção de um problema em que o repositório de símbolos não fica mais desativado quando um erro ERROR_INTERNET_SECURITY_CHANNEL é recebido.
  • Foi corrigido um problema em que barras invertidas não podiam ser digitadas na janela Comando para layouts de teclado não pertencentes ao inglês.
  • Correção de um problema em que a caixa de texto de edição nas janelas Locais, Inspeção e Pontos de Interrupção não rolava até o cursor quando o texto era maior que a coluna na qual estava inserido.
  • Priorizado *.dmp (período único) em *.*.dmp (períodos duplos) para despejos CAB ou ZIP.

Correções de acessibilidade

  • Correção do redimensionamento de coluna por meio do teclado para as janelas Locais e Inspeção.
  • Navegação de teclado aprimorada em todo o WinDbgX.

1.2409.17001.0

Correções de acessibilidade

Correção de vários problemas ao interagir com o WinDbg usando um leitor de tela.

Correções de bug

  • Corrigido um problema em que a desinstalação do WinDbgX impedia a abertura do WinDbg (Clássico).
  • Correção de um problema em que o WinDbgX redimensionava depois de aparecer durante a abertura.

Depuração de viagem no tempo

1.2407.24003.0

Novos recursos

Novo provedor de scripts JavaScript

Agora estamos entregando um novo provedor JavaScript retrocompatível baseado em V8. Como resultado, os hosts ARM64 agora podem usar extensões JavaScript. A interface do usuário ARM64 agora também adota por padrão o mecanismo ARM64.

O novo provedor é habilitado por padrão em todas as arquiteturas. Em x86 e x64, ele pode ser ativado ou desativado por meio dos comandos .veighton e .veightoff. No futuro, planejamos remover esses comandos e o provedor JavaScript herdado.

Extensões de depurador com manifestos da galeria de extensões agora podem adicionar ícones à nova guia Extensions na faixa de opções do WinDbg. Selecionar esses ícones dispara uma visualização de uma consulta de modelo de dados específica. A extensibilidade é feita adicionando visões ao manifesto da galeria de extensões. Uma exibição associa um acoplamento de um nome e um ícone a um tipo de consulta e exibição de modelo de dados. Para obter a documentação, consulte a documentação do manifesto da galeria de extensões.

Uma extensão de galeria agora pode ser carregada condicionalmente com base em valores específicos de parâmetros de exceção. Para obter mais informações, consulte a documentação do manifesto da galeria de extensões.

Opção de configuração para nunca fazer download de símbolos específicos

Agora você pode pular o download de símbolos para imagens específicas.

Symbols Na seção do arquivo de configuração DbgX.xml, você pode adicionar uma lista de símbolos:

<Namespace Name="DisabledSymbolsDownload">
  <Setting Name="MSEdge.dll" Type="VT_BSTR" Value=""></Setting>
</Namespace>

No depurador, você pode executar dx Debugger.Settings.Symbols.DisabledSymbolsDownload para visualizar a lista atual de símbolos que não estão sendo baixados.

Você também pode alterar a lista diretamente do depurador:

dx @$curprocess.Modules[1].DisableSymbolDownload()
dx @$curprocess.Modules[1].EnableSymbolDownload()

Para ajudar a depurar problemas no download de códigos-fonte com base no SourceLink incorporado, agora você pode usar o comando !lmsourcesinfo module para exibir o conteúdo do SourceLink que o depurador utiliza.

Melhorias gerais da interface do usuário

Fez pequenas melhorias em janelas como as janelas Modules e Stack.

  • A coluna de cabeçalho é usada para classificar visualizações de grade.
  • Mais ações de clique com o botão direito do mouse estão disponíveis.
  • A janela Pilha mostra frames como embutidos quando apropriado.

Correções de bug

  • Correção de um problema em que PDBs maiores que 4 GB não baixavam por HTTP. O Edge é um exemplo desse tipo de PDB.
  • Correção de um problema de cache no provedor de credenciais do depurador. (Agora ele armazena credenciais em cache por site.)
  • Correção de bugs durante a avaliação dos gatilhos de carregamento da galeria de extensões.
  • Corrigido um bug com !address que poderia causar uma falha.
  • Corrigido !heap -a -a para que funcionasse agora.

TTD

Consulte as notas de versão do TTD para a versão 1.11.410.

1.2402.24001.0

Novos recursos

Depuração do Live Linux

Agora você pode depurar um processo do Linux ao vivo. Para obter mais informações, consulte estes artigos:

Para o futuro previsível, o cliente WinDbg requer o Windows porque o WinDbg não é executado no Linux.

Registre um subconjunto da execução com a Depuração de Viagem no Tempo

Agora você pode especificar uma lista de módulos a serem registrados para concentrar o TTD nos módulos aos quais você se importa. Essa funcionalidade pode reduzir a sobrecarga de gravação. Para usá-lo, na caixa de diálogo Configurar e Gravar, selecione Gravar subconjunto de execução. Em seguida, especifique os módulos que você deseja gravar. (Para obter mais informações, consulte problemas conhecidos.)

Para um controle mais fino, você pode gravar seu programa com precisão usando uma nova API de gravação em processo. Para saber como gravar seu programa, consulte nosso código de exemplo e documentação.

Janela de registro compacta

A nova janela de registro se parece com a saída do r comando. A edição na nova janela de registro ainda não é suportada.

Novos parâmetros para e (Inserir Valores) em comandos de memória

Os e comandos (Enter Values) em memória agora dão suporte a endereços físicos como os d comandos (Exibir Memória). Essas opções têm suporte apenas no modo kernel.

Opção Descrição
/p Usa endereços de memória física para a exibição. O intervalo especificado por Range é extraído da memória física em vez da memória virtual.
/p[c] O mesmo que /p, exceto que a memória armazenada em cache é lida. Os colchetes ao redor c devem ser incluídos.
/p[uc] O mesmo que /p, exceto que a memória lida não está em cache. Os colchetes ao redor uc devem ser incluídos.
/p[wc] O mesmo que /p, exceto que a memória combinada de gravação é lida. Os colchetes ao redor wc devem ser incluídos.

Para mais informações, consulte e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (inserir valores).

Correções de bug

  • Adicionado suporte para desmangalamento de nomes Rust na depuração no Linux.
  • Fizemos melhorias na depuração do CLR.
    • Adicionada a capacidade de forçar quadros CLR de navegação na pilha em modo misto.
      • Adicionada configuração ForceMixedModeStackWalker a config.xml ou DbgX.xml.
      • O comando !forceclrmixedmodeunwind foi adicionado para investigações únicas ou caso você não possa alterar a configuração.
  • Melhorias gerais na depuração do CLR no Linux foram feitas.
  • Correção de vários problemas em relação a LinuxKernel.js e variáveis por CPU.
    • Adicionado o comando !runq em LinuxKernel.js para permitir descartar as filas de execução do agendador de kernel por CPU (semelhante em forma ao comando do utilitário de falha do Linux runq).
    • Corrigidos vários comandos em LinuxKernel.js para corresponder às alterações do kernel. Em kernels mais recentes, a árvore do temporizador usa nós RB armazenados em cache em vez de nós RB brutos. Em kernels mais recentes, a all_bdevs lista se foi; portanto, os dispositivos de bloco agora são percorridos a partir do superblock (blockdev_superblock).
  • Realizou várias natvis correções para funcionar mais como versões recentes do Visual Studio.
  • Preferencial sourcelink versus herdado sourceinfo.
    • Foi adicionado o comando !lmsourcesinfo <module> para exibir fluxos de sourcelink de PDBs (para ajudar a depurar problemas com sourcelink).

Problemas conhecidos

Quando você especifica uma lista de módulos a serem registrados com TTD, a especificação de mais de um módulo não funciona nesta versão.

1.2308.2002.0

Fez muitas correções de bugs e pequenas melhorias.

1.2306.12001.0

Fez muitas correções de bugs e pequenas melhorias.

1.2303.30001.0

Observação

O depurador foi renomeado do WinDbg Preview para WinDbg.

O depurador herdado lançado com as Ferramentas de Depuração para Windows agora é conhecido como WinDbg (Clássico).

Depuração de Viagem no Tempo no ARM64

O WinDbg é executado nativamente no ARM64 e também habilitamos o TTD de processos arm64 nativos. Agora você pode gravar processos ARM64 nativos (e processos x86 e ARM32) e depurá-los facilmente, mesmo em sua máquina x64. O suporte a processos x64 ou habilitados para x64 (ARM64EC) em dispositivos ARM64 ainda não está disponível.

O desempenho geral do TTD também foi aprimorado, com a sobrecarga de gravação substancialmente reduzida para processos que usam instruções SIMD comuns. No total, foram otimizadas 65 novas instruções, que variam de MMX a SSE 4.2, AVX e AVX2.

Resolução de ponto de interrupção ambíguo

Pontos de interrupção ambíguos permitem que o depurador defina pontos de interrupção em determinados cenários em que uma expressão de ponto de interrupção é resolvida para vários locais. Para obter mais informações, consulte Resolução ambígua do ponto de interrupção.

1.2107.13001.0

A pesquisa do WinDbg Preview agora inclui a opção de pesquisar usando expressões regulares, conhecidas como regex. Para habilitar o regex na janela que você deseja pesquisar, selecione Ctrl+F. Em seguida, alterne o botão rotulado .* ao lado da caixa de pesquisa.

Modo restrito

O modo restrito é uma configuração opcional que pode limitar o tipo de sessões de depuração que o WinDbg Preview pode iniciar apenas para sessões de depuração remota e arquivos de despejo. Para obter mais informações, consulte WinDbg: modo restrito.

Suporte a variável sombreada

Em versões anteriores, o WinDbg lança erros de "Símbolo Ambíguo" ao tentar avaliar (??) ou exibir (dx) uma variável que compartilha seu nome com outra variável no escopo. O WinDbg agora desambigua variáveis que compartilham o mesmo nome acrescentando @n ao nome da variável. Exemplos incluem foo@0 e foo@1

Essa alteração também é refletida na janela Locais . Anteriormente, apenas a variável mais próxima no escopo aparecia.

1.2104.13002.0

Um recurso conveniente de produtividade do WinDbg Preview é a capacidade de detectar padrões na janela Comando . Para detectar padrões, selecione qualquer texto e todas as outras instâncias desse texto são realçadas. Este destaque é útil quando você analisa os padrões de memória. Agora, ele também realça números equivalentes em outros radixes, independentemente de como o número é formatado em hex, decimal ou notação científica. Para obter mais informações sobre esquemas de numeração, consulte n (definir base de números)..

Exemplo:

Quando você seleciona 0x000001e2fb3f6160, todas as outras instâncias são realçadas independentemente do formato.

Captura de tela da janela **Command** do WinDbg com vários formatos de número realçados.

Esse recurso também funciona com realces semi-temporários. Selecione Ctrl e clique duas vezes em um número para realçar todas as instâncias. Você pode monitorar diversos números importantes ao longo do histórico de comandos dessa maneira. (Para limpar o realce, selecione Ctrl e clique duas vezes no número novamente.) Por fim, esse recurso também funciona quando você pesquisa números selecionando Ctrl+F.

Acesso estendido ao código-fonte

O comando de caminho de origem .srcpath, .lsrcpath (Definir caminho de origem) foi atualizado para incluir a nova marca DebugInfoD. Para obter mais informações, consulte o acesso estendido do código-fonte.

Estados de host e convidado de processos WOW no modelo de dados

Ao depurar um processo WOW de 32 bits a partir de um contexto de 64 bits, agora você pode acessar os estados hospedeiro e convidado dentro do modelo de dados.

Exemplos de estado convidado de 32 bits:

  • dx @$curprocess.Environment
  • dx @$curthread.Environment
  • dx @$curthread.Stack

Exemplos de estado do host de 64 bits:

  • dx @$curprocess.NativeEnvironment
  • dx @$curthread.NativeEnvironment
  • dx @$curthread.NativeStack

Melhorias na depuração do JavaScript

O JavaScript carregado na UI agora usa o comando .scriptdebug para depuração direta no console. Para obter mais informações, consulte o script do depurador JavaScript: depuração de JavaScript.

Melhorias de acessibilidade

Com o WinDbg Preview, nos comprometemos a criar um depurador inclusivo para engenheiros com deficiências. Fizemos as seguintes melhorias de acessibilidade:

  • Os links da janela Comando foram clicáveis por meio do teclado (selecione Shift+Enter).
  • Navegação aprimorada do teclado do menu principal.
  • Navegação aprimorada do teclado da faixa de opções.
  • Maior contraste nos elementos da interface do usuário.

Novo tipo de acesso a dados para sobrescrever na depuração de Time Travel

A Depuração de Viagem no Tempo agora fornece um Overwrite tipo de acesso a dados. Consultas de memória, como dx @$cursession.TTD.Memory() agora, têm outra coluna que mostra os valores antigos de gravações.

Outras correções, aprimoramentos e atualizações

  • Adicionou-se um recurso para detectar e aplicar automaticamente uma solução alternativa para um problema de hardware USB 3.1 quando ambos os controladores, o host responsável pela depuração do kernel e o alvo, forem USB 3.1.
  • Adicionado um novo atalho de interface do usuário: Ctrl+Shift+selecionar em um link DML copia o link para a área de transferência.

1.0.2007.01003

Marcadores de cronograma

Marque posições importantes de viagem no tempo no WinDbg ao invés de copiar e colar manualmente a posição no Bloco de Notas. Os marcadores facilitam a visualização rápida de diferentes posições no rastreamento em relação a outros eventos e a sua anotação.

Você pode dar um nome descritivo para marcadores.

Captura de tela da nova caixa de diálogo de favorito com o nome de exemplo para a Primeira Chamada de API no aplicativo Exibir Saudação.

Acessar marcadores por meio da janela Linhas do Tempo disponível em Exibir>Linha do Tempo. Quando você passa o cursor sobre um favorito, o nome do favorito é exibido.

Captura de tela da linha do tempo do WinDbg com três marcadores e uma dica de ferramenta que exibe o nome do marcador.

Você pode selecionar e segurar (ou clicar com o botão direito do mouse) no marcador para ir para essa posição, renomear ou excluir o marcador.

Captura de tela do menu de contexto do marcador com o clique com o botão direito do mouse, com as opções para ir para a posição, editar e remover.

Janela de Módulos

Uma nova janela mostra os módulos e suas informações relacionadas que estão disponíveis por meio da faixa de opções Exibir. A janela Módulos mostra:

  • O nome do módulo, incluindo o local do caminho.
  • O tamanho em bytes do módulo carregado.
  • O endereço base em que o módulo é carregado.
  • A versão do arquivo.

Captura de tela da janela Módulos do WinDbg que exibe cinco módulos listados.

Nomes/descrições de thread disponíveis na depuração dinâmica

Os nomes das threads definidos a partir de SetThreadDescription agora estão disponíveis ao realizar a depuração ao vivo no modo de usuário. Os nomes de thread estão disponíveis usando o ~ comando ou o modelo de dados do depurador.

0:000> ~
   0  Id: 53a0.5ffc Suspend: 1 Teb: 000000b1`db1ed000 Unfrozen "Hello world!"
   7  Id: 53a0.9114 Suspend: 1 Teb: 000000b1`db1ef000 Unfrozen
   8  Id: 53a0.2cc4 Suspend: 1 Teb: 000000b1`db1f1000 Unfrozen
   9  Id: 53a0.5c40 Suspend: 1 Teb: 000000b1`db1f3000 Unfrozen

0:000> dx @$curthread
@$curthread                 : ConsoleTestApp!ILT+25(mainCRTStartup) (00007ff7`fac7101e)  [Switch To]
    Id               : 0x5ffc
    Name             : Hello world!
    Stack
    Registers
    Environment

Suporte ao PDB portátil

O suporte ao PDB portátil foi adicionado. O formato PDB descreve uma codificação de informações de depuração produzidas por compiladores de linguagens da CLI e consumidas por depuradores e outras ferramentas. Para obter mais informações, consulte símbolos PDB portáteis.

Outras alterações e correções de bug

  • Suporte fornecido para a depuração de despejos de memória no kernel AMD64 e no Linux utilizando o WinDbg.
  • Melhorias na gravação de viagens no tempo e outras correções.

1.0.1912.11001

  • Linhas do tempo TTD: uma nova janela exibe visualmente eventos essenciais no rastreamento: exceções, pontos de interrupção, chamadas de função e acessos de memória. As linhas do tempo abrem automaticamente e exibem automaticamente exceções (se presentes) e pontos de interrupção. Para obter mais informações, consulte WinDbg Preview: Timeline.
  • Comutado para cromado de janela padrão: o cromado de janela personalizado que usamos causou alguns problemas de dimensionamento e redimensionamento, portanto, o removemos por enquanto.
  • Navegação aprimorada do teclado no menu arquivo: o menu arquivo é mais fácil de navegar apenas com um teclado.

Outras alterações e correções de bug

  • Desabilitou as janelas Stack e Locals quando seu destino está em execução para que ele não mostre "Erro não especificado" quando não houver nenhum destino.
  • Adicionada uma coluna Serviços à caixa de diálogo Anexar para ajudá-lo a encontrar facilmente quais serviços estão em execução.
  • Correção de um bug que fazia com que a detecção de arquitetura não funcionasse quando os aplicativos são abertos com argumentos.
  • Desmontagem aprimorada para a janela Desmontagem quando símbolos privados são carregados.
  • Removido o botão Carregar JSProvider da faixa de opções de script porque jsprovider.dll agora é carregado automaticamente.

1.0.1908.30002

  • Melhorias em objetos de chamadas TTD: as consultas de chamadas agora incluem nomes de parâmetro, tipos e valores. Ao consultar rastreamentos para chamadas de função, você pode obter parâmetros totalmente tipados e seus valores. Essa funcionalidade facilita a filtragem de resultados por parâmetros.
  • Suporte para Open Enclave: o WinDbg Preview agora pode depurar aplicativos Open Enclave. Para obter mais informações, consulte a depuração do Open Enclave).
  • Como parte do suporte ao Open Enclave, o WinDbg pode abrir core dumps e binários ELF e também símbolos DWARF (não há suporte para DWARF 5 no momento) de enclaves e aplicativos Linux. Quando você abre um core dump de um aplicativo que não é do Windows, as janelas e comandos básicos geralmente funcionam corretamente, mas a maioria das extensões e comandos específicos do Windows não funcionam. Os arquivos ELF e DWARF são baixados de servidores de símbolos seguindo as convenções de chave definidas em convenções de chave SSQP. Enclaves são o único cenário com suporte, mas estamos abertos a feedback sobre a possibilidade de oferecer suporte a outros despejos de memória do Linux.
  • Alteração do formato de arquivo TTD: uma atualização importante no formato de arquivo para traces TTD interrompe a compatibilidade futura. As versões anteriores do WinDbg Preview não podem abrir rastreamentos registrados com esta versão e versões futuras do WinDbg Preview. Esta versão e futuras versões poderão abrir rastros novos e antigos.

Outras alterações

  • O TTD agora utiliza o mecanismo de 64 bits para indexação e o bitness apropriado do mecanismo de depuração para reproduções. Possíveis problemas de memória ao indexar e problemas de SOS ao reproduzir são minimizados.
  • A execução dx sem parâmetros agora mostra o namespace raiz para facilitar a navegação.
  • O menu Configurações agora tem opções para modificar o símbolo padrão e o local do cache de origem.
  • O suporte para gravação do AVX-512 (a gravação do AVX-512 causa uma desaceleração maior que o normal) foi aprimorado.
  • O licenciamento offline está habilitado.

1.0.1905.12001

  • Melhorias na mitigação de erro SymSetDiaSession: a correção para atenuar o erro causado por aplicativos que injetam DbgHelp em nosso processo não estava funcionando em alguns cenários. Fizemos melhorias e continuamos monitorando os comentários sobre esse erro.

  • Personalização da cor de destaque: geralmente, os cenários precisam de várias instâncias do WinDbg abertas. Mover-se entre eles pode ser confuso e demorar algum tempo para descobrir qual é o "correto". Adicionamos a capacidade de alterar a cor de destaque azul para ajudar a distinguir visualmente as sessões e facilitar a troca entre elas.

    Selecione a faixa de opções Exibir e selecione uma opção de cor de ênfase na última seção. Quando sessões futuras são abertas dos alvos recentes, a cor de destaque persiste como parte do espaço de trabalho do alvo.

  • Melhorias na tokenização da fonte: A janela de origem agora tem suporte básico para tokenizar arquivos de origem do Rust e SEH do C++: __try/__except/__finally/__leave.

  • Melhorias de coroutina: melhoramos o suporte para variáveis locais de coroutina e determinadas variáveis otimizadas.

  • Configuração de cache de origem e símbolo padrão: adicionamos uma opção ao menu Configurações nas configurações de Depuração para alterar o local do cache para símbolos. Há um problema conhecido em que deixar essa configuração em branco faz com que o carregamento da fonte falhe. Planejamos adicionar validação para evitar que esse problema ocorra em uma versão futura.

  • -pv correções: Corrigimos um bug que poderia ter impedido -pv (anexação não invasiva) de funcionar em algumas circunstâncias.

1.0.1904.18001

  • Correção do erro SymSetDiaSession: tivemos relatos de um erro que impede que o WinDbg Preview seja aberto em algumas situações. Alguns aplicativos externos tentam injetar uma versão de DbgHelp em nosso processo antes de carregá-la. Alguns deles estão usando uma versão do DbgHelp com funcionalidade ausente, o que causa esse erro quando tentamos usar esses recursos. Adicionamos uma correção para esse problema e planejamos rastreá-lo para determinar se há cenários em que ele ainda ocorre.
  • Controle de fonte: adicionamos configurações para controlar a fonte e o tamanho da fonte. Há duas configurações diferentes: uma é para janelas de texto monoespaçadas (como Desmontagem, Origem e Comando), e outra é para janelas de ferramentas (como Locais e Pilha). Essas opções não afetam algumas áreas. Planejamos atualizá-los no futuro.
  • Aprimoramentos de realce: o realce persistente do texto na janela Comando agora também realça o texto nas janelas Origem e Anotações .
  • Melhorias no carregamento de origem: alteramos a forma como o carregamento de arquivos de origem funciona. Anteriormente, quando você abriu um arquivo de origem, operações de mecanismo como executar mais comandos não eram possíveis ou eram imprevisíveis. Alteramos o local onde o carregamento ocorre para possibilitar um paralelismo mais eficiente e um cancelamento mais confiável das operações de abertura de origem.

Outras alterações e correções de bug

  • Adicionado Ir para a Desmontagem ao menu de contexto da janela 'Origem'.
  • Adicionada uma caixa de seleção Seguir instrução atual na janela Desmontagem.
  • Correção de um bug que fazia com que a janela Comando fosse executada lentamente quando ela gera grandes quantidades de texto.
  • Teclas Page Up e Page Down modificadas para funcionarem de maneira semelhante ao Visual Studio.
  • Fez alterações para que, quando um arquivo ASM for aberto na janela Origem, ele agora tenha realce básico para comentários, strings e diretivas.

1.0.1812.12001

Esta versão inclui as seguintes atualizações:

  • Cabeçalho C++ do modelo de dados do depurador: há um novo cabeçalho C++, DbgModel.hincluído como parte do SDK do Windows para estender o modelo de dados do depurador via C++. Para obter mais informações, consulte a visão geral do modelo de dados do Depurador C++. Esta versão inclui uma nova extensão que adiciona mais recursos de estilo de API ao modelo de dados do depurador que podem ser acessados por meio do dx comando, JavaScript e o novo DbgModel.h cabeçalho. Essa extensão estende o modelo de dados para incluir conhecimento sobre assembly e execução de código por meio do namespace Debugger.Utility.Code e do sistema de arquivos local por meio do namespace Debugger.Utility.FileSystem.
  • Extensão de tipos sintéticos: com essa nova extensão de API, temos um novo exemplo em nosso repositório GitHub. Essa extensão JavaScript lê arquivos de cabeçalho C básicos e define informações de tipo sintético para as estruturas e uniões definidas no cabeçalho. Por meio do comando, a dx memória pode ser exibida estruturada como se você tivesse um PDB com informações de tipo para esses tipos.

Outras alterações e correções de bug

  • O WinDbg Preview agora lida de forma mais inteligente ao colocar as janelas de origem ou a janela Desmontagem em primeiro plano ao pisar.
  • O título da janela do WinDbg Preview foi reorganizado para apresentar informações mais importantes no início durante a depuração do kernel.
  • O contraste de plano de fundo alternado na janela Comando deve ser um pouco mais perceptível.

1.0.1810.2001

Esta versão inclui estas atualizações:

  • Foi adicionada uma nova caixa de diálogo Configurações que você pode acessar no menu Arquivo ou na faixa de opçõesPágina Inicial.
  • Foi adicionada uma caixa de diálogo de configurações de eventos e exceções. Este menu altera como o depurador lida com eventos e exceções, o equivalente aos sx comandos ou à caixa de diálogo de filtros de eventos do WinDbg. Na faixa de opções Página Inicial , selecione Configurações. Em seguida, no menu à esquerda, selecione Eventos e Exceções para gerenciar eventos e exceções.
  • Melhoramos o indexador TTD com melhor desempenho. Esse aprimoramento aumenta o desempenho da indexação de arquivos de rastreamento TTD, o que torna o processo de indexação mais rápido (entre 2 e 10 vezes) e, ao mesmo tempo, torna os arquivos de índice menores (aproximadamente 50% menores). As melhorias de desempenho são mais perceptíveis para rastreamentos com mais de 4 GB de tamanho ou quando você usa um computador com muitos núcleos de CPU (8+). O novo indexador torna mais viável depurar rastreamentos grandes (50 GB+).
  • Adicionado um novo sinalizador debugArch de inicialização para especificar a arquitetura. O WinDbg Preview tenta iniciar o mecanismo do depurador com o número de bits correto para o destino para dar melhor suporte à depuração de código gerenciado. Há circunstâncias em que ele não pode determinar a bitness certa ou talvez você queira substituir o que ele decide. Use -debugArch x86|amd64 para controlar a arquitetura do mecanismo de depurador.

Outras alterações e correções de bug

  • Correção de um bug que fazia com que barras pretas aparecessem em um depurador de tela inteira com uma janela flutuante aberta.
  • Correção de um bug que fazia com que as opções de símbolo fossem desmarcadas sem querer.
  • Agora o histórico de comandos é preservado ao abrir a partir de destinos recentes.
  • Edição com suporte na janela do modelo de dados em que agora você pode editar valores.
  • Tornou os registros TTD mais claros porque eles não são indexados.
  • Melhorou o desempenho da janela Locais .
  • Foi adicionado um botão na faixa de opções para salvar os logs da janela Comando em um arquivo.
  • Adicionado . SelectMany(\<projection\>) ao conjunto padrão de métodos LINQ.

1.0.1807.11002

Esta versão inclui as seguintes atualizações:

  • Salvamento automático e carregamento de pontos de interrupção: esta é a primeira etapa para substituir áreas de trabalho. Agora você pode salvar e carregar pontos de interrupção. A inicialização de algo que você depurou anteriormente da guia Recentes no menu Arquivo agora carrega os pontos de interrupção dessa sessão. O plano é expandir essa funcionalidade para preservar mais informações entre as sessões. Pontos de interrupção de hardware (ba) e várias outras propriedades dos pontos de interrupção, como contextos e condições específicos de threads e processos, não estão sendo salvas no momento.

Pequenas alterações e correções de bug

  • Adicionadas opções -xde linha de comando, -xe, -xde -xn-xipara controlar o tratamento de exceções e eventos. Essas opções de linha de comando se comportam como seus equivalentes de comando.
  • Adicionado suporte na janela Anotações para formatação em negrito, sublinhado e itálico.
  • Corrigidos alguns problemas de zoom e rolagem.
  • Adicionado suporte para que a seleção de texto nas janelas Comando, Memória, Origem ou Desmontagem agora realça outras instâncias do texto selecionado.
  • Correção de um bug em que a interrupção do carregamento de símbolos fazia com que o carregamento de símbolos falhasse para o restante da sessão.
  • Correção de um bug para que o NatVis agora recarregue corretamente quando uma sessão é reiniciada.

1.0.1805.17002

Esta versão inclui as seguintes atualizações:

  • Nova janela Desmontagem: a janela agora inclui:

    • Rolando para cima ou para baixo agora carrega continuamente mais análise de código sempre que possível.
    • O realce é usado para identificar a sintaxe de números, endereços de código e códigos de operação.
    • Selecionar um símbolo de código redireciona a janela Desassemblagem para esse local.
    • Passar o mouse sobre números mostra uma dica de ferramenta que converte esse número em outras bases.
    • Usar cabeçalhos significa o início de uma função.
  • Janela de origem mais rápida: a janela de origem foi atualizada para ser mais rápida e eficiente em termos de recursos.

Pequenas alterações e correções de bug

  • Correção de falhas relacionadas ao cache de símbolos.
  • Correção de alguns casos em que a alternância de interrupção inicial não era utilizável quando o destino não estava configurado.
  • Adicionado suporte para que, se você selecionar uma aba na janela Comando sem nada disponível, o cursor permanecerá no campo de entrada.
  • Suporte adicionado para que o WinDbg Preview agora detecte automaticamente a bitness ao abrir arquivos CAB.

1.0.1804.18003

Esta versão inclui as seguintes atualizações:

  • Melhorias de status de símbolo e cancelamento: há momentos em que o depurador exibe símbolos de carregamento BUSY e é difícil determinar o que ele está fazendo e por que sem ter !sym o barulhento habilitado. Atualizamos o WinDbg Preview para ter uma comunicação melhor sobre o que ele está fazendo ao carregar símbolos para ajudar a solucionar problemas.

    Além das alterações que permitem ver o que está acontecendo, também fizemos algumas alterações que tornam o cancelamento de símbolos mais confiável. A janela Logs contém alguns dos detalhes que normalmente são gerados quando !sym modo barulhento está habilitado. Se você selecionar Exibir>Logs, obterá a saída completa de carregamento de símbolo barulhento sem precisar ativá-la e tentar recarregar os símbolos.

  • Janela Observações Experimentais: o WinDbg Preview agora tem uma janela para fazer anotações. Selecione Exibir>Anotações para abri-lo. Se você copiar/colar nele, os links DML serão preservados e ainda funcionarão como se fosse a janela Comando . Você também pode salvar e carregar arquivos de anotações na faixa de opções Notas quando a janela está aberta.

  • Janela de origem experimental mais rápida: para ajudar a melhorar o desempenho do WinDbg Preview, uma nova janela de origem experimental é mais eficiente. Existem algumas lacunas em torno de menus de contexto e realce de sintaxe, mas queremos dar a todos a opção de experimentá-lo antes de concluí-lo para nos dar comentários antecipados. Rode $UseFastSourceWindow para usá-lo. Se você quiser voltar para o antigo, execute $UseMonacoSourceWindow. A configuração é mantida entre sessões. Você precisa fechar e reabrir janelas de origem para obter a nova versão.

  • API JSProvider versão 1.2: para extensões JavaScript que declaram suporte para a API versão 1.2:

    • Qualquer objeto com um .compareTo método que saia do script tem um comparador personalizado. (Os operadores de comparação funcionam no avaliador DX e em outros lugares. Um exemplo é IModelObject::Compare.)
    • Qualquer objeto com um .equals método que saia do script tem um operador de igualdade personalizado. (Os operadores == e != funcionam no avaliador DX e em outros locais. Um exemplo é IModelObject::IsEqualTo.)
    • Objetos nativos ou de modelo de dados que entram no script possuem .compareTo e .equals, o que permite o acesso a qualquer comparador personalizado ou implementações de igualdade personalizadas.

Pequenas alterações e correções de bug

  • Adicionado suporte para que .server agora liste um nome de domínio totalmente qualificado para uso mais fácil quando houver problemas de domínio em relação a nomes curtos.
  • Adicionado suporte para que Ctrl+G agora funcione na janela Origem .
  • Adicionada uma barra de endereços à janela Desmontagem.
  • Adicionado suporte para que o WinDbg Preview agora trate _NT_SYMBOL_PATH de modo mais esperado.
  • Adicionada a opção -server de linha de comando.
  • Adicionado suporte para que as consultas de modelo de dados TTD agora sejam exibidas progressivamente. Se você interrompê-lo, ainda verá alguns resultados. Esse recurso é experimental e opcional. Execute dx @$cursession.TTD.AsyncQueryEnabled = 1 para habilitá-lo.
  • Adicionado suporte para que o dps comando agora tenha links para os arquivos de origem aos quais ele se refere.

1.1801.19001.0

Esta versão inclui as seguintes atualizações:

  • Realce de texto: agora você pode realçar todas as instâncias do texto selecionado diretamente no depurador. Para usar esse recurso, selecione algum texto na janela Comando e, em seguida, selecione Realce na faixa de opções comando . Você também pode selecionar Ctrl+Alt+H. Se você usar uma dessas opções em texto já realçado, o realce será removido.

Se preferir usar comandos, use o $hl comando:

$hl ["someValueHere"]: o realce fornece texto (ou realce claro, se já realçado). $hl clearAll: Limpe todas as entradas realçadas. $hl caseSensitive [1|0]: defina a correspondência de realce para diferenciar maiúsculas e minúsculas, ou não diferenciar. (O padrão não diferencia maiúsculas de minúsculas.)

Esta versão também inclui algumas pequenas correções de bugs.

1.1712.15003.0

Esta versão inclui as seguintes atualizações:

  • Consultas de memória TTD: agora você pode consultar o TTD para acessos de memória de maneira semelhante à maneira como você consulta chamadas hoje. Agora você pode encontrar todas as leituras, gravações e execuções que acessam um intervalo específico de memória.

    • Exemplo de leitura e gravação: dx @$cursession.TTD.Memory(startAddress, endAddress, "rw")
    • Exemplo de execução exclusiva: dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")
  • Alterações de configuração: o WinDbg Preview agora salva automaticamente as configurações entre as sessões, incluindo o caminho do símbolo e o caminho de origem.

Melhorias do JavaScript

  • Os números de 64 bits e os numéricos em JavaScript agora contêm um método modulo, que permite uma operação de modulo verdadeira de 64 bits.
  • Os objetos definidos no JavaScript agora podem implementar uma noção personalizada comparável ou equitativa. Ele opera em dx usando operadores padrão de C++ ou em operações LINQ. Para usar essa funcionalidade, o script deve declarar na matriz initializeScript que dá suporte a uma nova versão da API do host inserindo um registro new host.apiVersionSupport(1, 2). Posteriormente, você pode usar essas funções em qualquer janela do modelo de dados ou consulta LINQ. Se o método implementa .compareTo(other), ele é comparável (os operadores de comparação funcionam tanto em dx quanto em LINQ). Se o método retornar um valor negativo, então this < other. Se o método retornar zero, então this == other. Se o método retornar um valor positivo, então this > other. Se o método implementar .equals(other), ele é equitativo (== trabalha em dx e LINQ). O método deve retornar true ou false.

Pequenas alterações e correções de bug

  • Correção de um bug em que as janelas Stack e Locals não estavam funcionando durante a depuração de inicialização.
  • Atualizou o resultado do LM para relatar ProductVersion e campos semelhantes com mais precisão.
  • Habilitado o botão Passo para Fora durante as sessões TTD.
  • Adição de suporte a -lsrcpath.
  • Corrigimos os cabeçalhos nas janelas Locais, Inspeção e Modelo para que eles não desaparecessem quando você rolasse para baixo.
  • Adicionado suporte para que, quando você usa Alt+Tab para voltar ao WinDbg Preview, a janela Comando preserva corretamente o local do cursor.
  • Adicionado o atalho Ctrl+Alt+V para alternar o modo detalhado.
  • Adicionado suporte para que agora você possa desabilitar a rolagem automática da janela Comando clicando e segurando (ou clicando com o botão direito do mouse) a guia Comando e selecionando Desativar a rolagem automática.
  • Adicionado suporte para que agora você possa depurar processos filhos através da página avançada de inicialização do executável.

1.0.14.0

Esta versão inclui as seguintes atualizações:

  • Experiência aprimorada do servidor de processo: uma nova notificação no menu Arquivo mostra com qual servidor de processo você está conectado e interagindo. Como parte dessas alterações, quando uma sessão de depuração é encerrada, a conexão com o servidor do processo é mantida e você pode se desconectar no menu Arquivo.
  • Novas opções de layouts predefinidos na faixa de opções "Exibir": uma nova opção Layouts está disponível na faixa de opções "Exibir". Atualmente, existem três layouts: o padrão, um focado na desmontagem e um mínimo.
  • Faixa de opções de Depuração de Viagem no Tempo: uma faixa de opções de Viagem no Tempo aprimorada é exibida quando você depura um rastreamento TTD.
  • Metadados de scripts JavaScript: as extensões JavaScript agora podem retornar metadados para propriedades e outros constructos. A extensão agora pode fornecer cadeias de caracteres de ajuda, indicar a base de exibição para valores e muito mais. Os metadados são fornecidos colocando um descritor de metadados em um objeto, seja pela presença de Symbol.metadataDescriptor ou por meio de uma chamada explícita para host.metadata.defineMetadata. Retornos de função, valores iterados e outros contextos de valor podem retornar metadados para seu valor por meio de host.metadata.valueWithMetadata.
  • Atualizações da API JavaScript: Algumas alterações que podem quebrar o nível de código-fonte foram feitas nas APIs do provedor JavaScript (incluindo novos métodos previstos e propriedades em objetos nativos). As extensões existentes não verão nenhuma das alterações potencialmente significativas sem indicar que elas dão suporte a uma nova versão da API JsProvider. O suporte para a nova versão da API é indicado colocando um host.apiVersionSupport registro na matriz retornada initializeScript com uma declaração de suporte à versão 1.1.

Alterações na API versão 1.1

  • As funções host.getModuleSymbol e host.getModuleType retornam null se não encontrarem o símbolo, em vez de lançar uma exceção.
  • Todos os objetos nativos têm a propriedade de endereço neles além de .targetLocation. Se o objeto não tiver um endereço, uma exceção será gerada ao acessar a propriedade.
  • Todos os objetos nativos têm novos .getObjectValue e .setObjectValue métodos para acessar propriedades no objeto, o que pode entrar em conflito com nomes que JavaScript coloca no objeto (por exemplo, address).

Mais alterações do JavaScript

  • As extensões JavaScript agora podem adicionar e remover propriedades em objetos de modelo de dados usando Object.defineProperty e o operador de exclusão. Adicionar ou registrar uma classe JavaScript como um modelo pai ou assinatura de tipo ainda é a maneira preferida de manipular o modelo de objeto.
  • As extensões JavaScript agora podem modificar variáveis globais dentro de módulos no destino de depuração por meio de uma nova host.setModuleSymbol API.
  • Todas as funções matemáticas que estão no tipo de biblioteca de 64 bits (por exemplo, .add, e .subtract.multiply.divide) também estão presentes em números JavaScript.
  • As funções e propriedades do JavaScript agora podem retornar valores, que são enumerações usando serialização personalizada. Um acessador de função ou propriedade pode retornar host.typeSystem.marshalAs(value, type…) para evocar esse marshaling personalizado.
  • O comando de ponto de interrupção no depurador de script agora pode ser interrompido em nomes de função, além de posições de linha e coluna.
  • Objetos de tipo em extensões JavaScript têm acesso ao módulo que os contém por meio da propriedade .containingModule.

Pequenas alterações e correções de bug

  • Corrigida a formatação de guias condicionais da faixa de opções para serem menos confusas.
  • Retrabalhou o DML para ser mais rigoroso na análise para melhorar o desempenho.
  • Fez várias correções com o desempenho e o comportamento de Ctrl+F.
  • Adicionado um aviso ao executar sem privilégios elevados antes de tentar usar o TTD.
  • Adicionada a opção de substituir a detecção automática de bits de destino.
  • Desabilitou várias opções de menu Arquivo e faixa de opções quando elas não podem ser usadas (como Go quando estiver em um arquivo de despejo).

Problemas conhecidos

O SOS não funciona em rastreamentos x86.

1.0.13.0

Esta versão adiciona o rastreamento de viagem no tempo. Com a Depuração de Viagem no Tempo, você pode gravar um processo e, posteriormente, reproduzi-lo tanto para a frente quanto para trás. O TTD pode ajudá-lo a depurar problemas mais facilmente, permitindo que você "rebobine" sua sessão de depurador em vez de ter que reproduzir o problema até encontrar o bug. Para obter mais informações, consulte Depuração de Viagem no Tempo: Visão geral.

1.0.12.0

Esta versão foi a primeira versão do WinDbg Preview. Para obter informações gerais sobre os recursos disponíveis no WinDbg Preview, consulte os principais recursos do WinDbg.