Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo fornece informações sobre o que há de novo no WinDbg. Versões anteriores foram lançadas como WinDbg Preview.
1.2511.21001.0
Novas funcionalidades
- Seleção aprimorada de ficheiros com gestão baseada em prioridades, estendida a ficheiros e pastas CAB, para melhor direcionamento de ficheiros de despejo.
- Melhoria nos downloads de ficheiros de símbolos ELF, DWARF e Mach-O, com registos e mensagens de estado aprimorados.
- DBGHELP_DIA_PATH variável de ambiente passa a ter prioridade sobre os módulos atualmente carregados para melhor controlo do manuseamento de símbolos
- Melhorias na indexação de nomes de membros para melhor navegação de símbolos e desempenho de pesquisa
Correções de bugs
- Resolvi o problema em que as escritas de memória em alvos Linux ativos falhavam
- Carregamento e funcionalidade corrigidos das extensões DAC e SOS quando conectados a alvos de depuração em execução
- Problema resolvido em que os executáveis do processo anexados apareciam como 'imageXXXXXXXX' em vez de nomes reais
- Corrigido o código de download do NuGet.exe que estava quebrado devido à implementação do cache negativo
- Corrigi atrasos na interface ao usar exdigdbsrv
- Exceções WMI tratadas no verificador de compatibilidade de soluções alternativas USB 3.1
- Foram removidos os avisos incorretos (C6518) das anotações SAL do wdbgexts.h
- Exibição fixa de informação de tipos para
char16_techar32_ttipos em plataformas Linux
Melhorias gerais na interface do usuário
- Adicionar nova opção de Fita Simplificada, que reduz a pegada vertical da Fita
- Aceleração gráfica por hardware ativada ao correr em sessões de Protocolo de Ambiente de Trabalho Remoto (RDP)
- Melhoria do desempenho de atualização na janela de Desmontagem
- Corrigi a escala DPI para menus contextuais de janelas de ferramentas em diferentes configurações de monitores
- Tornei a informação de versão selecionável na página Sobre para facilitar a cópia
- Remoção do suporte para tecnologia obsoleta IDNA (Nomes de Domínio Internacionalizados em Aplicações)
- Limpei o log de depuração para excluir entradas iniciais de arranque da aplicação provenientes da galeria de extensões e de outras operações internas.
Depuração de tempo de execução reversível (TTD)
- 1.11.553 -> 1.11.567
1.2510.7001.0
Interface do usuário e melhorias na experiência
- Abrir qualquer instância de memória a partir da barra de ferramentas
Depuração e melhorias no desempenho
- Impediu o roubo dos retornos de chamada da instrumentação do processo para melhorar a confiabilidade da depuração.
- Histórico das variáveis do Enhanced Time Travel Debugging (TTD) com preferência por formato tabular para melhor visualização dos dados
- Corrigida falha no histórico de variáveis ao reutilizar geradores, garantindo a captura correta de funções.
- Avaliador aprimorado para pontos de interrupção ambíguos para lidar com cenários de depuração mais complexos
- Exibição de coluna vazia do Publisher fixa para aplicativos de armazenamento e processos de PLM
Atualizações da API TTD & Replay
- Comando atualizado
!ttpara fornecer ajuda em uma única linha e a posição atual quando chamado sem argumentos, ao invés de mover para o início do traço. - Adicionada disponibilidade experimental do SDK da API Replay para integração externa
- Métodos aprimorados de modelo de dados de histórico de variáveis para acesso programático aprimorado
- Corrigidas várias otimizações de operação de repetição TTD e melhorias no suporte de retorno de chamada
Correções de bugs e estabilidade
- Corrigido o relatório de erros que mostrava incorretamente "erro: A operação foi concluída com êxito"
- Foram resolvidos os problemas de processamento de URLs do host nos comandos do fasttfgitview.
- Melhorámos o texto de erro relativo à resolução de símbolos para proporcionar um feedback mais claro.
- Corrigidos problemas com o carregamento de PDBs para assemblies do .NET mapeados no Linux.
- Corrigido o erro de leitura não inicializada nos componentes de depuração
- Corrigidos problemas na pesquisa de arquivos na galeria de extensões com nomes curtos.
1.2508.27001.0
Novas funcionalidades
- Adicionada uma opção para desativar a aceleração de hardware gráfico para WinDbg.
- Adicionada uma nova
.AlternateFunctionspropriedade em<frame>.Attributes.SourceInformation.
Correções de bugs
- Corrigido 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 de menu de guia que se conectam 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 ao explorar o histórico de comandos.
- Manipulação fixa da roda do mouse para suavizar adequadamente a rolagem (mouses com rodas suaves e trackpads).
- Corrigido o comportamento de passo a passo recursivo enganoso na depuração x86 de 32 bits quando prólogos de função chamados
__SEH_prolog4. - Corrigido um bug na configuração para
.AllowNugetExeUpdategalerias de extensões baseadas em NuGet. - Corrigido um erro ao ler símbolos DWARFv5 relacionados a
.debug_namestabelas e índices de nomes. - Corrigido o comportamento de entrada para linhas de origem com várias chamadas filtradas por etapas.
- Corrigida a falha causada pela string de versão inválida
natvis. - Ambiente fixo de transmissão de blocos para
CreateProcessWdepuração remota. - Corrigidos os comandos
!percpue!allpercpupara ponteiros de CPU alocados dinamicamente viaalloc_percpuno kernel do Linux. - Corrigido um problema com a numeração de CPUs em sessões de depuração de kernel Linux.
- Corrigidos os rótulos de função que estavam em falta na janela de desmontagem para alvos de símbolos (PDB) de bases de dados não programados.
- Tratamento fixo de relocações de espaço reservado em binários ELF.
- Correção do erro de dupla liberação no tratamento dos símbolos DWARF de
DW_OP_fbreg. - Correção de regressão no código de coleção de despejos de memória que impedia a coleta completa de despejos de memória para processos emulados em x64 sobre ARM64.
Melhorias gerais na interface do usuário
- Melhorias feitas em como o WinDbg restaura a posição da janela quando você altera monitores de resoluções diferentes. WinDbg agora também salva e restaura posições ajustadas.
- Implementada a rolagem horizontal usando a roda do mouse enquanto você mantém pressionada a tecla Shift.
- Atualizámos o seletor Abrir pasta para utilizar a caixa de diálogo moderna.
1.2506.12002.0
Novas funcionalidades
WinDbg agora vem com os depuradores de modo de console (cdb.exe / ntsd64.exe / kd.exe). Para desambiguar os binários uns dos outros e não interferir com as 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 da ferramenta Modelo de dados pode ser personalizado através do
$OpenDmoToolwindowcomando e também pode ser alterado através do menu de contexto da barra de título. - Nova configuração do depurador para permitir downloads HTTP paralelos de arquivos de símbolos. Esta opção está ativada por predefinição.
Correções de bugs
- Corrigido como o caminho de destino é salvo para arquivos de despejo abertos através da linha de comando (
-z) para que você possa abri-lo com êxito a partir do menu Recentes . - Corrigida uma falha na janela do Editor de Scripts .
- Corrigido como o WinDbg lida com terminações de linha inconsistentes em arquivos de origem que foram abertos na janela Origem para fornecer uma exibição mais consistente dos arquivos de origem.
- Foi corrigido um problema em que as credenciais não eram renovadas para servidores de símbolos HTTP quando você usava o novo recurso de downloads paralelos.
- Corrigido um problema em que as propriedades dos objetos do modelo de dados não eram enumeradas corretamente nas extensões JavaScript.
- Corrigido um problema em que o texto da coluna desaparecia quando reordenado por arrastamento.
- Corrigido 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.
- Corrigido um problema em que, às vezes, desencaixar uma janela de ferramenta resultava em conteúdo em branco.
- Foi corrigido um problema em que os minidumps de processos emulados X64 em máquinas ARM64 não podiam ser depurados.
- Corrigido um problema em que pontos de interrupção ambíguos travavam o depurador.
- Corrigido um problema em que o GDBServer falhava quando o processo era encerrado ao depurar um processo Linux em execução.
- Corrigidos vários problemas relacionados à depuração de extensões JavaScript (
.scriptdebug), incluindo melhor enumeração de propriedades e correção de um problema de falha.
Melhorias gerais na interface do usuário
- Alinhou o pop-up de sugestão de comando ao cursor. Agora mostra apenas preenchimentos sugeridos em vez de tudo antes do cursor.
- Foram fornecidos mais detalhes à caixa de diálogo inicial de erro de destino de depuração. Para falhas de despejo de memória, foi fornecido um hiperlink para um arquivo TSG que não conseguiu abrir.
- Deu às barras de título das janelas de ferramentas o mesmo menu de contexto que às suas abas acopladas.
- Fez melhorias visuais nas janelas Locals, Watch e Model .
- Depuração de viagem no tempo (TTD) atualizada para a versão 1.11.532. Para obter mais informações, consulte Notas de versão do TTD.
1.2502.25002.0
Novas funcionalidades
Janela de comando IntelliSense
O prompt de entrada de comando mostra automaticamente as conclusões sugeridas quando o primeiro caractere digitado é . (ponto), ! (bang) ou $ (cifrão).
As sugestões também podem ser invocadas com o atalho de comando Ctrl+Barra de espaço.
Depuração de instantâneos
Quando o WinDbg depura processos ao vivo localmente, ele também pode tirar instantâneos do processo. Para alternar entre capturas e o processo em tempo real, use 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 no Connect to remote debugger.
Novas APIs de modelo de dados
Debugger.Utility.Symbols.GetTypeInformationRetorna as informações de tipo associadas a qualquer objeto passado. Um argumento opcional permite a desreferenciação automática (um nível) de ponteiros se tu quiseres o tipo subjacente a qualquer ponteiro (ou referência).
Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)Cria um novo filtro de etapa localizado no namespace ao lado de todas as APIs de criação de ponto de interrupção.
Debugger.State.StepFiltersRetorna a lista de filtros de etapa que têm as propriedades
Id,Description,Type,PatterneIsEnabled. Há um.Remove()método em objetos de filtro por etapas.
Experiência de depuração CLR melhorada sem clrcomposition.dll
O componente dbgeng.dll redistribuível melhora o suporte de navegação de pilha para quadros CLR (Common Language Runtime) sem a necessidade de clrcomposition.dll estar presente.
Melhorias aleatórias
- Suporte melhorado para depuração do kernel Linux (especialmente para kernels 6.11+).
- Adicionado suporte para páginas KDUMP comprimidas com o algoritmo ZSTD.
Correções de bugs
- Sistema operacional de servidor (SOS) atualizado para a versão 9.0.557512.
- Foi corrigida uma regressão de desempenho na verificação de assinaturas revogadas ao carregar msdia140.dll.
- Corrigida uma falha ao ler o contexto XSTATE.
- Corrigido o realce de ponto de interrupção desativado na janela Desmontagem para diferenciar de um ponto de interrupção habilitado.
- Corrigida uma falha ao fechar uma janela de ferramenta flutuante.
- Corrigido um problema em que a posição atual da janela Cronogramas nem sempre era exibida após a abertura de um rastreamento recente.
- Corrigido um problema nas janelas Desmontagem e Memória , que nem sempre eram atualizadas depois que um novo valor era inserido.
- Corrigido o esquema de cores da barra de título no tema escuro.
- Corrigida a apresentação de pontos de interrupção adiados na janela Pontos de interrupção onde Localização mostrava
0x0em vez da expressão original inserida quando foi criada. Ele também tem um ícone distinto, o que indica que ele não está vinculado. - Corrigido um problema nas janelas Locais e Observaçã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
kdspam do depurador com mensagemError getting port connector information. Para obter mais informações, consulte o relatório de bug original. - Foi corrigido um problema em que o
gcacionava pontos de interrupção condicionais quando a condição era falsa. - Corrigido um problema para que os registros YMM e ZMM agora possam ser visualizados quando você depurar um rastreamento TTD.
Correções de acessibilidade
- Navegação de teclado melhorada para as janelas Locals, Watch e Breakpoints .
- Legibilidade visual melhorada da faixa de opções e das janelas Locais, Inspeção e Pontos de Paragem.
- Melhor usabilidade do leitor de tela das janelas Locals, Watch e Breakpoints .
- Manteve o foco, a seleção e a rolagem anteriores do teclado, quando possível, para editar itens nas janelas Locais, Observação e Pontos de interrupção .
- Suporte geral melhorado para dimensionamento de texto do Windows.
Melhorias gerais na interface do usuário
- Adicionado um comando para mover o foco de uma caixa de texto de entrada de comando para um painel de saída de comandos no modo de alternância Marcar (semelhante a um prompt de comando). O atalho é Ctrl+M.
- Adicionado um item de menu de contexto Ir para Desmontagem à janela de 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
- Atualizado para a versão 1.11.481.
- Para obter mais informações, consulte Notas de versão do TTD.
1.2410.11001.0
Quebrando a mudança
Agora dbghelp.dll se vincula 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 bugs
- Corrigido um problema em que os pseudônimos de funções da galeria de extensões não estavam vinculados aos gatilhos de carregamento.
- Corrigido um problema em que o armazenamento de símbolos já não está inativo quando se recebe um erro
ERROR_INTERNET_SECURITY_CHANNEL. - Corrigido um problema em que não era possível digitar uma barra invertida na janela Comando para layouts de teclado não ingleses.
- Corrigido um problema em que a caixa de texto de edição nas janelas Locais, Observação e Pontos de interrupção não rolava para o cursor quando o texto era maior do que a coluna na qual estava hospedado.
- Priorizou *.dmp (período único) sobre *.*.dmp (períodos duplos) para despejos CAB ou ZIP.
Correções de acessibilidade
- Redimensionamento de coluna fixo através do teclado para as janelas Locais e Observação .
- Navegação de teclado melhorada em todo o WinDbgX.
1.2409.17001.0
Correções de acessibilidade
Corrigidos vários problemas quando você interage com o WinDbg usando um leitor de tela.
Correções de bugs
- Corrigido um problema em que a desinstalação do WinDbgX impedia a abertura do WinDbg (Clássico).
- Corrigido um problema em que o WinDbgX era redimensionado depois de aparecer durante a abertura.
Depuração de viagem no tempo
- Atualizado para a versão 1.11.429.
- Para obter mais informações, consulte Notas de versão do TTD.
1.2407.24003.0
Novas funcionalidades
Novo provedor de scripts JavaScript
Agora estamos distribuindo um novo provedor JavaScript retrocompatível baseado no V8. Como resultado, os hosts ARM64 agora podem usar extensões JavaScript. A interface do usuário do ARM64 também agora usa como padrão o mecanismo ARM64.
O novo provedor é habilitado por padrão em todas as arquiteturas. Em x86 e x64, ele pode ser ligado ou desligado através dos comandos .veighton e .veightoff. No futuro, planejamos remover esses comandos e o provedor JavaScript herdado.
Extensibilidade da interface do usuário por meio da galeria de extensões e do modelo de dados
As extensões do depurador com manifestos da galeria de extensões agora podem adicionar ícones à nova guia Extensões na faixa de opções do WinDbg. A seleção desses ícones aciona uma visualização de uma consulta de modelo de dados específica. A extensibilidade é realizada adicionando exibições ao manifesto da galeria de extensão. Uma vista associa um nome e um ícone a uma consulta de modelo de dados e tipo de vista. Para obter documentação, consulte Documentação do manifesto da galeria de extensões.
Parâmetros de exceção adicionados ao acionador de carregamento de exceção da galeria de extensões
Uma extensão de galeria agora pode ser carregada condicionalmente com base em valores de parâmetros de exceção específicos. Para obter mais informações, consulte Documentação do manifesto da galeria de extensões.
Opção de configuração para nunca baixar símbolos específicos
Agora você pode ignorar o download de símbolos para imagens especificadas.
Symbols Na seção do arquivo de configuração do 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 exibir 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()
Novo comando para exibir informações do SourceLink
Para ajudar a depurar problemas com o download de fontes com base no SourceLink incorporado, agora você pode usar o comando !lmsourcesinfo module para exibir o conteúdo que SourceLink o depurador usa.
Melhorias gerais na interface do usuário
Fiz pequenas melhorias nas janelas, como as janelas Módulos e Pilha :
- A coluna de cabeçalho é usada para classificar vistas de grelha.
- Mais ações de clique com o botão direito do mouse estão disponíveis.
- A janela Pilha mostra as molduras como integradas quando apropriado.
Correções de bugs
- Corrigido um problema em que PDBs maiores que 4 GB não eram baixados por HTTP. Edge é um exemplo de tal PDB.
- Corrigido um problema relacionado ao cache no provedor de credenciais do depurador. (Agora ele armazena credenciais em cache por site.)
- Corrigidos erros durante a avaliação dos gatilhos de carregamento da galeria de extensões.
- Corrigiu-se um erro com
!addressque poderia causar um crash. - Corrigido
!heap -a -apara que funcione agora.
TTD
Consulte as notas de versão do TTD para a versão 1.11.410.
1.2402.24001.0
Novas funcionalidades
Depuração ao vivo de Linux
Agora você pode depurar um processo Linux ao vivo. Para obter mais informações, consulte estes artigos:
No futuro próximo, o cliente WinDbg requer o Windows porque o WinDbg não é executado no Linux.
Gravar um subconjunto de execução com a depuração com retrocesso no tempo
Agora você pode especificar uma lista de módulos para gravar para focar o TTD nos módulos que lhe interessam. Esta 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 deseja gravar. (Para obter mais informações, consulte Problemas conhecidos.)
Para um controle mais preciso, você pode gravar com precisão seu programa 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 registo compacta
A nova janela de registo parece-se com a saída do comando r. A edição a partir da nova janela de registo ainda não é suportada.
Novos parâmetros para e (Enter Values) em comandos de memória
Os e comandos (Enter Values) na memória agora suportam endereços físicos como os d comandos (Display Memory). Estas opções são suportadas 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 é retirado da memória física em vez da memória virtual. |
/p[c] |
O mesmo que /p, exceto que a memória em cache é lida. Os parênteses ao redor c devem ser incluídos. |
/p[uc] |
O mesmo /pque , exceto que a memória não armazenada em cache é lida. Os parênteses ao redor uc devem ser incluídos. |
/p[wc] |
O mesmo /pque , exceto que a memória combinada de gravação é lida. Os parênteses ao redor wc devem ser incluídos. |
Para obter mais informações, consulte e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Enter Values).
Correções de bugs
- Adicionado suporte para desmangling de nomes Rust na depuração em Linux.
- Foram feitas melhorias na depuração do CLR:
- Adicionámos a funcionalidade de forçar a caminhada de pilha em modo misto nos quadros CLR.
- Adicionada uma configuração
ForceMixedModeStackWalkerparaconfig.xmlouDbgX.xml. - Adicionado
!forceclrmixedmodeunwindcomando para investigações pontuais ou se não for possível alterar a definição de configuração.
- Adicionada uma configuração
- Adicionámos a funcionalidade de forçar a caminhada de pilha em modo misto nos quadros CLR.
- Foram realizadas melhorias gerais na funcionalidade de depuração do CLR no Linux.
- Foram corrigidos vários problemas relacionados a
LinuxKernel.jse às variáveis específicas de cada CPU.- Adicionado o comando
!runqnoLinuxKernel.jspara poder despejar as filas de execução do agendador do kernel por CPU (semelhante na forma ao comando do utilitário de crise do Linuxrunq). - Corrigidos vários comandos no
LinuxKernel.jspara corresponder às alterações do kernel. Em kernels mais recentes, a árvore de temporizador usa nós RB armazenados em cache em vez de nós RB brutos. Em kernels mais recentes, aall_bdevslista desapareceu, então os dispositivos de bloco agora são retirados do superbloco em vez disso (blockdev_superblock).
- Adicionado o comando
- Fez várias
natviscorreções para operar de forma mais semelhante a versões recentes do Visual Studio. - Preferido(a)
sourcelinkem vez de legadosourceinfo.- Adicionado o comando
!lmsourcesinfo <module>para mostrar streams a partir desourcelinkPDBs (para ajudar na depuração de problemas comsourcelink).
- Adicionado o comando
Problemas conhecidos
Quando você especifica uma lista de módulos para gravar com TTD, especificar mais de um módulo não funciona nesta versão.
1.2308.2002.0
Fiz muitas correções de bugs e pequenas melhorias.
1.2306.12001.0
Fiz muitas correções de bugs e pequenas melhorias.
1.2303.30001.0
Observação
O depurador foi renomeado de 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 para processos compatíveis com x64 ou ARM64EC em dispositivos ARM64 ainda não está disponível.
O desempenho geral do TTD também foi melhorado, com a sobrecarga de gravação substancialmente reduzida para processos que usam instruções SIMD comuns. No total, 65 novas instruções foram otimizadas, que variam de MMX a SSE 4.2, AVX e AVX2.
Resolução ambígua do ponto de interrupção
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 em vários locais. Para obter mais informações, consulte Resolução de ponto de interrupção ambíguo.
1.2107.13001.0
Pesquisa Regex
A pesquisa WinDbg Preview agora inclui a opção de pesquisar usando expressões regulares, conhecidas como regex. Para ativar 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 para sessões de depuração remotas e despejar somente arquivos. Para obter mais informações, consulte WinDbg: modo restrito.
Suporte a variáveis sombreadas
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. WinDbg agora desambigua variáveis que compartilham o mesmo nome anexando @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
Seleção e pesquisa de números inteligentes
Um recurso de produtividade conveniente do WinDbg Preview é a capacidade de detetar padrões na janela de comando . Para detetar padrões, selecione qualquer texto e todas as outras ocorrências desse texto serão realçadas. Este destaque é útil quando se olha para padrões de memória. Agora, ele também destaca números equivalentes em outros radixes, não importa 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 Numérica).
Exemplo:
Quando você seleciona 0x000001e2fb3f6160, todas as outras instâncias são realçadas, independentemente do formato.
Este recurso também funciona com destaques parcialmente temporários. Selecione Ctrl e clique duas vezes em um número para realçar todas as suas instâncias. Você pode acompanhar vários números importantes ao longo do seu histórico de comandos dessa forma. (Para limpar o realce, selecione Ctrl e clique duas vezes no número novamente.) Finalmente, esse recurso também funciona quando você pesquisa números selecionando Ctrl+F.
Acesso estendido ao código-fonte
O comando source path .srcpath, .lsrcpath (set Source Path) foi atualizado para incluir a nova tag DebugInfoD. Para obter mais informações, consulte Acesso estendido ao 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 é possível acessar os estados de anfitrião e convidado dentro do modelo de dados.
Exemplos de estado de convidado de 32 bits:
dx @$curprocess.Environmentdx @$curthread.Environmentdx @$curthread.Stack
Exemplos de estado de host de 64 bits:
dx @$curprocess.NativeEnvironmentdx @$curthread.NativeEnvironmentdx @$curthread.NativeStack
Melhorias na depuração de JavaScript
JavaScript carregado na interface de utilizador agora usa o comando .scriptdebug para depuração direta no console. Para obter mais informações, consulte JavaScript debugger scripting: JavaScript debugging.
Melhorias de acessibilidade
Com o WinDbg Preview, nos comprometemos a criar um depurador inclusivo para engenheiros com deficiência. Fizemos as seguintes melhorias de acessibilidade:
- Links da janela de comando clicáveis através do teclado (selecione Shift+Enter).
- Navegação melhorada pelo teclado do menu principal.
- Navegação melhorada do friso pelo teclado.
- Maior contraste nos elementos da interface do usuário.
Novo tipo de acesso a dados de substituição para depuração de viagem no tempo
A Depuração de Viagem no Tempo agora fornece um tipo de acesso a dados Overwrite. 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, melhorias e atualizações
- Adicionado um recurso para detetar e aplicar automaticamente uma solução alternativa para um problema de hardware USB 3.1 quando o host e o destino de depuração do kernel são controladores USB 3.1.
- Adicionado um novo atalho de interface do usuário: Ctrl+Shift+select sobre um link DML copia-o para a área de transferência.
1.0.2007.01003
Marcadores da linha do tempo
Marque posições importantes de viagem no tempo no WinDbg em vez 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 rastreio em relação a outros eventos e a sua anotação.
Você pode fornecer um nome descritivo para os favoritos.
Aceda aos favoritos através da janela Linhas cronológicas disponível em Ver>Linha cronológica. Quando você passa o mouse sobre um marcador, o nome do marcador aparece.
Você pode selecionar e segurar (ou clicar com o botão direito do mouse) o marcador para viajar para essa posição, renomear ou excluir o marcador.
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 onde o módulo é carregado.
- A versão do arquivo.
Nomes/descrições de threads disponíveis na depuração em tempo real
Os nomes de thread definidos a partir de SetThreadDescription agora estão disponíveis ao realizar depuração de modo de utilizador em tempo real. 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 PDB portátil
Foi adicionado suporte a PDB portátil. O formato PDB descreve uma codificação de informações de depuração produzidas por compiladores de linguagens 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 bugs
- Forneceu suporte para depuração de dump do kernel AMD64 e Linux para WinDbg.
- Realizou melhorias no recurso de gravação de viagens no tempo e outras correções.
1.0.1912.11001
- Cronogramas TTD: uma nova janela exibe uma representação visual de eventos importantes em seu rastreamento: exceções, pontos de interrupção, chamadas de função e acessos à memória. As linhas do tempo abrem automaticamente e exibem exceções (se houver) e pontos de interrupção. Para obter mais informações, consulte WinDbg Preview: Timeline.
- Mudou para cromado de janela padrão: O cromo de janela personalizado que usamos causou alguns problemas de dimensionamento e redimensionamento, então o removemos por enquanto.
- Navegação melhorada do menu de ficheiros com teclado: O menu de ficheiros é agora mais fácil de navegar usando apenas o teclado.
Outras alterações e correções de bugs
- As janelas Pilha e Locais são desativadas enquanto o alvo está em execução, para evitar que exibam "Erro não especificado" quando não há alvo.
- Adicionada uma coluna Serviços à caixa de diálogo Anexar para ajudá-lo a encontrar facilmente quais serviços estão em execução.
- Corrigido um bug que fazia com que a deteção de arquitetura não funcionasse quando os aplicativos eram abertos com argumentos.
- Desmontagem melhorada 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 nos objetos de chamadas TTD: as consultas de chamadas agora incluem nomes, tipos e valores de parâmetros. Ao realizar consultas em traços para chamadas de função, é possível obter parâmetros com tipo definido e seus valores. Esse recurso facilita a filtragem dos resultados por parâmetros.
- Suporte para Open Enclave: WinDbg Preview agora pode depurar aplicativos Open Enclave. Para obter mais informações, consulte Open Enclave debugging).
- Dumps de núcleo ELF: Como parte do suporte ao Open Enclave, o WinDbg pode abrir dumps de núcleo ELF e binários e também símbolos DWARF (DWARF 5 não é suportado atualmente) de enclaves e aplicativos Linux. Quando você abre um dump principal de um aplicativo que não é do Windows, janelas e comandos básicos devem funcionar corretamente, mas a maioria das extensões e comandos específicos do Windows não funcionam. Os arquivos ELF e DWARF são baixados dos servidores de símbolos seguindo as convenções de chave definidas nas convenções de chave SSQP. Enclaves são a única opção suportada, mas agradecemos qualquer feedback sobre a abertura de outros core dumps do Linux.
- Alteração no formato de arquivo TTD: Uma grande atualização no formato de arquivo para rastreamentos TTD quebra a compatibilidade futura. As versões anteriores do WinDbg Preview não podem abrir rastreamentos gravados com esta versão e versões futuras do WinDbg Preview. Esta versão e versões futuras serão capazes de abrir vestígios novos e antigos.
Outras alterações
- O TTD agora usa o mecanismo de 64 bits para indexação e o bitness apropriado do mecanismo do depurador para replays. Possíveis problemas de memória durante a indexação e problemas de SOS durante a reexecução são minimizados.
- A execução
dxsem 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 a gravação de AVX-512 (a gravação de AVX-512 causa uma desaceleração maior do que o normal) foi melhorado.
- O licenciamento offline está ativado.
1.0.1905.12001
Melhorias na mitigação de erros do SymSetDiaSession: A correção para mitigar o erro causado por aplicativos injetando DbgHelp em nosso processo não estava funcionando em alguns cenários. Fizemos melhorias e continuamos a monitorar o feedback sobre esse erro.
Personalização de cores de destaque: muitas vezes, os cenários precisam de várias instâncias do WinDbg abertas. Ir e voltar entre eles pode ser confuso e levar algum tempo para descobrir qual é o "certo". Adicionámos a capacidade de alterar a cor de destaque azul para ajudar a distinguir visualmente as sessões e facilitar a troca entre elas.
Selecione o separador Vista e uma opção de cor de destaque na última seção. Quando sessões futuras são abertas a partir de alvos recentes, a cor de destaque mantém-se como parte do espaço de trabalho do alvo.
Melhorias na tokenização do código-fonte: A janela Source agora tem suporte básico para tokenizar arquivos de origem Rust e C++ SEH __try/__except/__finally/__leave.
Melhorias de corrotina: Melhoramos o suporte para variáveis locais de corrotina e determinadas variáveis otimizadas.
Símbolo padrão e configuração de cache de origem: adicionamos uma opção ao menu Configurações em Configurações de depuração para alterar o local do cache para símbolos. Há um problema conhecido de que tornar essa configuração em branco faz com que o carregamento do código-fonte falhe. Planejamos adicionar validação para evitar que esse problema aconteça em uma versão futura.
-pv fixes: 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 para erro SymSetDiaSession: Tivemos relatórios de um erro que impede WinDbg Preview de abrir em algumas situações. Alguns aplicativos externos tentam injetar uma versão do DbgHelp em nosso processo antes de carregá-lo. 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 (janelas 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. Planeamos atualizá-los no futuro.
- Melhorias de destaque: o realce persistente de texto na janela Comando agora também destaca o texto nas janelas Código-fonte e Notas .
- Melhorias no carregamento do código-fonte: alteramos o modo como o carregamento de arquivos de origem funciona. Anteriormente, quando você abria um arquivo de origem, as operações do mecanismo, como executar mais comandos, não eram possíveis ou eram imprevisíveis. Alteramos onde ocorre o carregamento para permitir um melhor paralelismo e um cancelamento mais confiável das operações de abertura da fonte.
Outras alterações e correções de bugs
- Adicionado Ir para Desmontagem no menu de contexto da janela Origem .
- Adicionada uma caixa de seleção Seguir instruções atuais na janela Desmontagem .
- Corrigido um bug que fazia com que a janela de comando fosse executada lentamente quando produzia grandes quantidades de texto.
- Alteradas as teclas Page up e Page down para terem um desempenho semelhante ao Visual Studio.
- Alterações feitas para que, quando um arquivo ASM é aberto na janela Origem , ele agora tenha comentário básico, cadeia de caracteres e realce de diretiva.
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.h, incluído como parte do SDK do Windows para estender o modelo de dados do depurador via C++. Para obter mais informações, consulte Visão geral do modelo de dados do depurador C++. Esta versão inclui uma nova extensão que adiciona mais recursos de estilo API ao modelo de dados do depurador que podem ser acessados por meio dodxcomando, JavaScript e do novoDbgModel.hcabeç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 esta nova extensão de API, temos uma nova amostra em nosso repositório GitHub. Esta 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. Através do comando
dx, a memória pode ser visualizada de forma estruturada, como se houvesse um PDB com informações de tipo para esses tipos.
Outras alterações e correções de bugs
- WinDbg Preview agora lida de forma mais inteligente ao trazer janelas Source ou a janela Disassembly para o primeiro plano ao executar passo a passo.
- O título da janela WinDbg Preview foi reorganizado para exibir informações mais importantes primeiro durante a depuração de kernel.
- O contraste de fundo alternado na janela de comando deve ser um pouco mais percetível.
1.0.1810.2001
Esta versão inclui estas atualizações:
- Adicionada uma nova caixa de diálogo Configurações que você pode acessar no menu Arquivo ou na faixa de opções Página Inicial .
- Adicionada uma caixa de diálogo de configurações de eventos e exceções. Esse menu altera como o depurador lida com eventos e exceções, o equivalente aos comandos ou à
sxcaixa 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. - Melhorou o indexador TTD para um melhor desempenho. Essa melhoria aumenta o desempenho da indexação de arquivos de rastreamento TTD, o que torna o processo de indexação mais rápido (entre 2 vezes e 10 vezes) enquanto torna os arquivos de índice menores (~50% menores). As melhorias de desempenho são mais percetíveis para rastreamentos com mais de 4 GB de tamanho, ou quando você usa uma máquina com muitos núcleos de CPU (8+). O novo indexador torna mais viável depurar grandes rastreamentos (50 GB+).
- Adicionado um novo
debugArchsinalizador de inicialização para especificar a arquitetura. WinDbg Preview tenta iniciar o mecanismo do depurador com a versão de bits apropriada para o alvo, de modo a melhorar o suporte à depuração de código gerido. Há circunstâncias em que ele não pode determinar a mordida certa, ou você pode querer substituir o que ele decide. Use-debugArchx86|amd64 para controlar a arquitetura do motor de depuração.
Outras alterações e correções de bugs
- Corrigido um bug que fazia com que barras pretas aparecessem no debugger em tela cheia com uma janela flutuante.
- Corrigido um bug que fazia com que as opções de símbolos fossem limpas sem querer.
- Agora, o histórico de comandos é preservado ao abrir a partir de destinos recentes.
- Edição suportada na janela do modelo de dados onde agora você pode editar valores.
- Tornou os rastreamentos TTD mais claros porque não estão indexados.
- Melhorou o desempenho da janela Locais .
- Adicionado um botão na faixa de opções para guardar os registos da Janela de Comando num ficheiro.
- 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 espaços de trabalho. Agora é possível salvar e carregar pontos de interrupção. Iniciar algo que você depurou anteriormente na 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 nas sessões. Os pontos de interrupção de hardware (
ba) e outras propriedades diversas em pontos de interrupção, como contextos e condições específicos de thread e processo, não estão sendo salvos no momento.
Pequenas alterações e correções de bugs
- Adicionadas opções
-xde linha de comando ,-xe,-xd,-xne-xipara controlar a manipulação de exceções e eventos. Essas opções de linha de comando comportam-se como os comandos correspondentes. - Adicionado suporte na janela Notas para formatação em negrito, sublinhado e itálico.
- Corrigidos alguns problemas de zoom e rolagem.
- Suporte adicionado para que a seleção de texto nas janelas Comando, Memória, Origem ou Desmontagem agora destaque outras instâncias do texto selecionado.
- Corrigido um bug em que a interrupção do carregamento do símbolo fazia com que o carregamento do símbolo falhasse durante o resto da sessão.
- Corrigido um bug para que o NatVis agora seja recarregado corretamente quando uma sessão for reiniciada.
1.0.1805.17002
Esta versão inclui as seguintes atualizações:
Nova janela Desmontagem: A janela agora inclui:
- Rolar para cima ou para baixo agora carrega continuamente mais desmontagem 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 move a janela Desmontagem para essa localização.
- 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 Origem mais rápida: A janela Origem foi atualizada para ser mais rápida e eficiente em termos de recursos.
Pequenas alterações e correções de bugs
- Corrigidos problemas relacionados ao cache de símbolos.
- Corrigidos alguns casos nos quais a interrupção inicial de alternância não era utilizável quando o alvo não estava configurado corretamente.
- Adicionado suporte para que, se você selecionar uma guia na janela de comando sem nada disponível, o cursor agora permaneça no campo de entrada.
- Adicionado suporte para permitir que o WinDbg Preview autodeteccione automaticamente a arquitetura de bits ao abrir arquivos CAB.
1.0.1804.18003
Esta versão inclui as seguintes atualizações:
Status do símbolo e melhorias de cancelamento: Há momentos em que o depurador exibe símbolos de carregamento OCUPADO , e é difícil determinar o que está fazendo e por que sem ter
!symbarulhento ativado. Atualizamos o WinDbg Preview para ter uma melhor comunicação 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 os símbolos de cancelamento mais confiáveis. A janela Logs contém alguns dos detalhes que normalmente são exibidos quando
!symo barulhento está ativado. Se selecionar Ver>Logs, obterá a saída completa do carregamento ruidoso de símbolos sem ter que ativá-lo e tentar recarregar os símbolos.Janela de notas experimentais: 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 de comando . Também pode guardar e carregar ficheiros de notas a partir do friso Notas quando a janela estiver aberta.
Janela de origem experimental mais rápida: para ajudar a melhorar o desempenho do WinDbg Preview, uma nova janela experimental de origem é mais eficiente. Existem algumas lacunas em torno dos menus de contexto e do realce de sintaxe, mas queremos dar a todos a opção de experimentá-lo antes de terminá-lo para nos dar feedback antecipado. Execute
$UseFastSourceWindowpara usá-lo. Se quiseres voltar para a versão antiga, executa$UseMonacoSourceWindow. A configuração preserva todas as sessões. Você precisa fechar e reabrir as janelas de código-fonte para obter a nova versão.JSProvider API versão 1.2: Para extensões JavaScript que declaram suporte para API versão 1.2:
- Qualquer objeto com um
.compareTométodo que sai do script tem um comparador personalizado nele. (Os operadores de comparação trabalham no avaliador DX e em outros lugares. Um exemplo éIModelObject::Compare.) - Qualquer objeto com um
.equalsmétodo que sai do script tem um operador de igualdade personalizado nele. (Os operadores==e!=trabalham no avaliador DX e em qualquer outro lugar. Um exemplo éIModelObject::IsEqualTo.) - Objetos nativos ou de modelo de dados que entram no script têm
.compareToe.equalssobre eles, o que permite o acesso a qualquer comparador personalizado ou implementações de igualdade personalizadas.
- Qualquer objeto com um
Pequenas alterações e correções de bugs
- Adicionado suporte para que
.serveragora liste um nome de domínio totalmente qualificado para uso mais fácil quando há problemas de domínio em torno de nomes curtos. - Adicionado suporte para que Ctrl+G agora funcione na janela Origem .
- Adicionou-se uma barra de endereço à janela Desmontagem.
- Adicionado suporte para que o WinDbg Preview agora lide com
_NT_SYMBOL_PATHde uma maneira mais esperada. - Adicionada a
-serveropção de linha de comando. - Adicionado suporte para que as consultas de modelo de dados TTD agora sejam exibidas progressivamente. Se você interrompê-lo, você ainda verá alguns resultados. Este recurso é experimental e opcional. Para ativá-lo, execute
dx @$cursession.TTD.AsyncQueryEnabled = 1. - Adicionado suporte para que o
dpscomando 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 destacar todas as instâncias do texto selecionado diretamente no depurador. Para utilizar esta funcionalidade, selecione algum texto na janela Comando e, em seguida, selecione Realce no friso Comando . Você também pode selecionar Ctrl+Alt+H. Se você usar uma dessas opções no texto já realçado, o realce será removido.
Se preferir usar comandos, você pode usar o $hl comando:
$hl ["someValueHere"]: Realce dá texto (ou realce claro se já estiver realçado).
$hl clearAll: Limpe todas as entradas realçadas.
$hl caseSensitive [1|0]: Defina a correspondência de realce como sensível a maiúsculas/minúsculas ou não sensível a maiúsculas/minúsculas. (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 à memória de maneira semelhante à consulta de 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 escrita:
dx @$cursession.TTD.Memory(startAddress, endAddress, "rw") -
Exemplo de execução único:
dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")
-
Exemplo de leitura e escrita:
Alterações de configurações: 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 no JavaScript
- Os números e números de 64 bits em JavaScript agora contêm um método de módulo, que permite uma verdadeira operação de módulo de 64 bits.
- Os objetos definidos em JavaScript agora podem implementar uma noção personalizada comparável ou equitativa. Funciona em
dxutilizando operadores C++ padrão ou em operações LINQ. Para usar essa funcionalidade, o script deve declarar nainitializeScriptmatriz que ele suporta uma nova versão da API do host inserindo um registronew host.apiVersionSupport(1, 2). Em seguida, pode utilizar estas funções em qualquerdxconsulta LINQ da Janela do Modelo de Dados. Se o método implementa.compareTo(other), é comparável (operadores de comparação funcionam emdxe LINQ). Se o método retornar um valor negativo, entãothis < other. Se o método retornar zero, entãothis == other. Se o método retornar um valor positivo, entãothis > other. Se o método implementa.equals(other), é equitativo (==funciona emdxe LINQ). O método deve retornar true ou false.
Pequenas alterações e correções de bugs
- Corrigido um bug em que as janelas Stack e Locals não estavam funcionando durante a depuração durante a inicialização.
- Atualizou a saída do LM para relatar
ProductVersione campos semelhantes com mais precisão. - Foi ativado o botão Step Out Back durante sessões TTD.
- Adicionado suporte para
-lsrcpath. - Corrigidos os cabeçalhos nas janelas Locais, Watch e Modelo para que não desapareçam ao rolar para baixo.
- Adicionado suporte para que, quando você usar Alt + Tab para voltar ao WinDbg Preview, a janela de comando preserve corretamente o local do cursor.
- Adicionado o atalho Ctrl+Alt+V para alternar o modo verboso.
- Adicionado suporte para que agora você possa desativar a rolagem automática da janela de comando selecionando e mantendo pressionada (ou clicando com o botão direito do mouse) a guia Comando e selecionando Desativar rolagem automática.
- Adicionado suporte para que agora você possa depurar processos filho através da página avançada executável de inicialização.
1.0.14.0
Esta versão inclui as seguintes atualizações:
- Experiência aprimorada do servidor de processos: uma nova notificação no menu Arquivo mostra a qual servidor de processo você está conectado e interagindo. Como parte dessas alterações, quando uma sessão de depuração está a terminar, a conexão do process server persiste e você pode se desconectar no menu Ficheiro.
- Novas opções de layout predefinidas 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 outro mínimo.
- Faixa de opções de Depuração de Viagem no Tempo: uma faixa de opções aprimorada de Viagem no Tempo aparece quando você depura um rastreamento TTD.
-
Metadados de scripts JavaScript: as extensões JavaScript agora podem retornar metadados para propriedades e outras construções. A extensão agora pode fornecer strings de ajuda, indicar o radix de exibição para valores e muito mais. Os metadata são fornecidos colocando um descritor de metadata em um objeto, seja pela presença de
Symbol.metadataDescriptorou por uma chamada explícita parahost.metadata.defineMetadata. Retornos de função, valores iterados e outros contextos de valor podem retornar metadados para seu valor viahost.metadata.valueWithMetadata. -
Atualizações da API JavaScript: Foram feitas algumas alterações que podem quebrar o código-fonte nas APIs dentro 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 suportam uma nova versão da API JsProvider. O suporte para a nova versão da API é indicado colocando um
host.apiVersionSupportregistro na matriz retornada porinitializeScriptcom uma declaração de suporte à versão 1.1.
Alterações na API versão 1.1
- As
host.getModuleSymbolfunções ehost.getModuleTyperetornam null se não conseguirem encontrar o símbolo em vez de lançar uma exceção. - Todos os objetos nativos têm a propriedade address neles, além de
.targetLocation. Se o objeto não tiver um endereço, uma exceção será lançada ao acessar a propriedade. - Todos os objetos nativos têm novos métodos
.getObjectValuee.setObjectValuepara acessar as propriedades neles, o que pode entrar em conflito com nomes que o JavaScript atribui a esses objetos (por exemplo,address).
Mais alterações no JavaScript
- As extensões JavaScript agora podem adicionar e remover propriedades em objetos de modelo de dados por meio
Object.definePropertydo operador delete. 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.setModuleSymbolAPI. - Todas as funções matemáticas que estão no tipo de biblioteca de 64 bits (por exemplo,
.add, ,.subtract.multiply, e.divide) também estão presentes em números JavaScript. - As funções e propriedades JavaScript agora podem retornar valores, que são enums por meio de marshaling personalizado. Um acessador de função ou propriedade pode retornar
host.typeSystem.marshalAs(value, type…)para evocar esse marshaling personalizado. - O comando breakpoint no depurador de script agora pode interromper nos nomes das funções, além de posições de linha/coluna.
- Os objetos de tipo em extensões JavaScript têm acesso ao seu módulo de contenção através da
.containingModulepropriedade.
Pequenas alterações e correções de bugs
- Corrigiu-se a formatação das abas condicionais da barra de ferramentas para serem menos confusas.
- DML reformulado para ser mais rigoroso na análise para melhorar o desempenho.
- Fiz várias correções com o desempenho e comportamento do Ctrl+F.
- Adicionado um aviso ao executar sem elevação antes de tentar usar o TTD.
- Adicionada a opção de substituir a deteção automática de bitness de destino.
- Desativou várias opções do menu Arquivo e da faixa de opções quando elas não podem ser usadas (como Ir quando em um arquivo de despejo).
Problemas conhecidos
O SOS não funciona em rastreamentos x86.
1.0.13.0
Esta versão adiciona rastreamento de viagem no tempo. Com a Depuração de Viagem no Tempo, você pode gravar um processo e, em seguida, reproduzi-lo mais tarde, tanto para frente quanto para trás. O TTD pode ajudá-lo a depurar problemas mais facilmente, permitindo que você "retroceda" sua sessão do depurador em vez de ter que reproduzir o problema até encontrar o bug. Para obter mais informações, consulte Depuração retroativa: Introdução.
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 Principais recursos do WinDbg.