Table of Contents
Se você obtiver sinalizadores de depuração do Wine em sua rede, este guia do usuário deve ajudar sua organização a corrigi-los.
Aprovado
a partir de
Tradução da página deles: porta não em execução. Tradutor, encontre o documento de discussão.
Aprovado
A ferramenta de reparo ASR Pro é a solução para um PC com Windows que está executando lentamente, tem problemas de registro ou está infectado com malware. Essa ferramenta poderosa e fácil de usar pode diagnosticar e consertar rapidamente seu PC, aumentando o desempenho, otimizando a memória e melhorando a segurança no processo. Não sofra mais com um computador lento - experimente o ASR Pro hoje mesmo!
WINEDEBUG é uma variável de ambiente útil que, segundo os especialistas, habilita e desabilita mensagens de depuração.
Sintaxe
WINEDEBUG = [classe] [+/-] rota [, [classe2] [+/-] canal2]
A
sua classe é opcional e pode encontrar uma das seguintes opções: pesquisar, avisar, cometer um erro ou manipular. Eles são os menos graduados, dos mais rigorosos aos extremamente rigorosos. follow é usado para caminhos de política que o carregam como aspecto de um programa normal. warn pode ser usado geralmente para caminhos que podem causar erros, mas provavelmente o ajudarão a ser bem tratado por um componente de nível superior. errar é que ele propõe caminhos de código que certamente apontarão para erros. Fixme é usado em caminhos de código que não são aplicados no Wine. Apenas cometa uma gafe por padrão e o conserto está pronto. Se um canal for especificado, mas não uma classe, todo o seu próprio currículo será incluído.
Cada canal tenta imprimir informações sobre um produto vitivinícola identificável. Os itens a seguir às vezes podem ser personalizados no + ou – com relação a realmente girar ou desativar o canal especificado. Se não houver muito ou nenhuma parte do agrupamento à frente, o título + pode ser omitido. As notas de espaço não estarão disponíveis se a extensão estiver.
Um canal que identifica qual canal de depuração ativar ou eliminar. Para ver uma lista completa de canais, visualize-a usando o comando pinpoint directory:
grep -r --include é igual a '*. c '--include =' *. '' WINE _ (DEFAULT | DECLARE ) _ DEBUG_CHANNEL 'dll para cada programa /
E para adicionar realmente mais trabalho, temos uma lista fixa e formatada no BASH (você pode alterar o número 26 junto com o final deste importante artigo para se adequar ao seu gosto de covinhas na bochecha):
com relação a nomes de mod em rr (encontre dll / programs / -mindepth um monte de pessoas -tipo d sort); | faço echo $ (grep -rE --offer = '*. [ch]' '^ WINE_ (DEFAULT | DECLARE) _DEBUG_CHANNEL' $ mod_name n | awk -F "[()]" 'imprimir dinheiro 2' | sort | sozinho) n | awk -v mod_name significa $ mod_name 'if (NF> 0) printf ("% - * s% s i9000 n", 26, mod_name ":", rr 0)';fez
Exemplos
- WINEDEBUG = avisar + todos
- corresponde a mensagens WARN para todas as opções, exceto mensagens ERR já permitidas, bem como mensagens FIXME.
- WINEDEBUG = fixme-all, warn + cursor, + relay
- desativa todas as coisas da comunicação FIXME, inclui transações Cursor WARN (além de FIXME ERR nas mensagens) e inclui todos os pontos de troca (chamadas API).
- WINEDEBUG = + informar
- inclui todas as transferências de mensagens. Para obter mais controle sobre como habilitar ou separar as funções e DLLs, verifique a passagem de rastreamento no registro importante [HKCU Software Wine Debug] (consulte Chaves de registro úteis e um ótimo exemplo abaixo).
- WINEDEBUG equivale a -d3d
- d3d desabilita todas as mensagens e, conseqüentemente, desabilita a verificação correta de ignorar GL após as operações. Isso pode melhorar o desempenho.
Canais úteis
- + all : registra tudo, na maioria dos casos provavelmente fornece muitos conhecimentos, pode ser útil para resolver problemas sutis.
- + pilha: Monitore todos os montes de atividade durante todo o programa e habilite verificações de consistência absolutamente típicas. Se seu aplicativo limpar continuamente o heap, você poderá usar + relé, + pesquisa de heap para restringir onde isso acontece. Se uma grande inconsistência for comprovada, o Wine esvazia o conteúdo do tipo de heap para encerrar o programa. Embora muitos aspectos possam levar à perda de negociações, o mais comum é a inundação do buffer interno devido ao Wine. Lembre-se de lembrar deste canal; Todo o sistema Wine usa as APIs HeapAlloc / HeapFree, então um dos principais argumentos é que o heap embutido do Wine é de fato muito útil para depuração. Certifique-se de que o Can + heap pode reduzir muito o programa, nem criar arquivos de log muito grandes. Se você está preocupado que o Wine possa corromper o heap, mas você nunca tem certeza, o aviso + heap deve ativar a proteção do heap, mas ele realmente não rastreia cada pedaço e está.
- + loaddll : Relata cada Ace carregado como uma DLL.
- + mensagem : Registra todas as mensagens enviadas pela porta visual para a rota da janela, paralelamente ao + relay. Use msg para rastrear todas as APIs de mensagens.
- + msgbox : tópico de logs específicos de todas as chamadas para MessageBox (). Muitos programas exibem informações de aproximadamente travamentos usando MessageBox (), que tem a capacidade de ser uma maneira rápida de obter essas informações em um tipo utilizável.
- + pid: prefixo quase a linha de saída de depuração usando um identificador associado ao resumo que é gerado. Isso pode tentar ser útil ao depurar aplicativos com multiprocessador.
- + relay : registra cada chamada que leva mais tempo do que as próprias restrições de DLL do módulo de modelagem do Web Wine, incluindo chamadas entre DLLs (não nativas). Canal Este é geralmente o primeiro passo para quando você não entende o que provavelmente está errado. Ele mostra todos os contatos e saídas dos módulos Wine em uma DLL. Se você está sobrecarregado com certas funções, verifique a expansão dos traços RelayInclude e RelayExclude que estão disponíveis no Wine Registry (em [HKCU Software Wine Debug]). Observe que essa cadeia já está repleta de funções que são rotuladas regularmente, mas geralmente não fornecem nenhuma dica de por que a escola pode ser descrita como reprovada. Nunca precisa de + Relay por + Snoop com DLLs nativas! Isso mostrará a implementação dessas DLLs, o que significa que todo código que você escrever para implementar americanos violará nossas diretrizes de design reverso de sala limpa. Protocolos
- + seh : exceções do Windows (tratamento estruturado diferente). Eles são chamados quando são muito bons. Seu aplicativo está operando uma operação ilegal (ou seja, freqüentemente a operação falha) ou quando o programa se cobre suas próprias exceções. Converte os sinais do Wine UNIX em condições SEH e os envia por meio desta linha. Sem dúvida, isso será útil na forma de aplicativos que costumam forçar seus próprios despejos de naufrágio, um após o outro, para garantir que você chegue à instância. A grande porcentagem de exceções comuns a serem observadas são STATUS_ACCESS_VIOLATION e 0xC0000005, que geralmente é a coisa mais próxima de uma falha de divisão no Win32. Além disso, você pode ver os códigos que não estão dentro dos cabeçalhos; Geralmente, essas são exceções específicas do idioma que não são usadas por nenhum compilador usado para EXE. Por exemplo, 0xEEDFADE é o código com relação à criação de uma exceção Delphi interna, além de 0xE06D7363 é a exceção do Microsoft Visual C ++ a esta regra, geralmente tem um valor mágico para moeda (info [0]) 0x19930520, que é indolor de considerar porque parece gostar de um encontro (e, provavelmente, também). Se os usuários virem qualquer uma dessas condições, esse método pode significar que o termo específico API do Win32 retornou todos os códigos diferentes de zero em algum lugar com terminações.
- + servidor : Exibe todos os Wineserver RPC. Normalmente você pode muito bem nunca precisar dele, mas deve ser útil na solução de problemas do Wineserver.
- + snoop : simplesmente registra chamadas de função entre DLLs nativas. Isso é semelhante a como Aber + Relay funciona entre duas DLLs naturais, embora esse tubo forneça menos informações porque os parâmetros nem mesmo são comunicados. + snoop também pode quebrar ou desestabilizar o dispositivo enquanto o produto verifica a bateria e, além disso, analisa a função Prolog para adivinhar um pouco mais de parâmetros. Nunca use + Relay e, adicionalmente, + Snoop com suas próprias DLLs! Ele também mostra o lançamento de todas as DLLs, o que significa quando qualquer código que você escreve para usá-las viola nossas diretrizes de inovação reversa de sala limpa.
- + síncrono: estimula o X11 de forma síncrona
- + carimbo de data / hora: Prefixo quase para cada saída de depuração com uma linha com quase carimbo de data / hora se essa linha foi concluída. Este deve ser um problema de desempenho de depuração útil.
- + fps: Insira o número de armações de óculos por segundoundu no terminal para aplicativos OpenGL ou d3d, Vulkan.
Mais dicas de depuração
- Se o programa legal exibe, eu diria que o formulário de postagem e não funciona, o público não sabe o que causou inquestionavelmente o erro, tente relay, msgbox trace. Em seguida, mantenha o registro de depuração em seu editor principal (menos bom) ou visitante de texto e pesquise por trace: msgbox. Revise as informações de retransmissão e os fatos anteriores à chamada da API MessageBox, embora você veja que o problema pode não ser devido à chamada que ocorreu antes da falha real. Esteja ciente da compreensão de chamadas de API com falha, e lembre-se de que as APIs do Windows são inquestionavelmente minimamente consistentes para retornar a avaliação exata de seu código. Você só precisa usar para descobrir o que normalmente cada API usa. Enquanto alguns outros retornam uma penalidade e anti-falha, alguns usam a convenção antípoda; A
- Se o programa não pode ser iniciado sem compartilhar um motivo, você pode usar trace substancial + tudo. Além disso, se o seu programa favorito parece querer sofrer um acidente automático fora de uma chamada de API, alguém pode tentar [Desmontar Desmontagem] para consultá-lo quando acessar algumas restrições passadas para seu local de montagem (por exemplo, o Calabouço do Keeper irá travar apenas no caso de você execute-o sem o caminho correto para argv [0]).
+ Tornar o relé menos detalhado
Se você estiver procurando por qualquer tipo de problema que apareça após alguns minutos de Tracphone enquanto o software do computador está em execução, o + relay pode ser excessivamente prolixo. Nesse caso, conduza uma vez e, em seguida, envie meu log por meio de um programa como
número Liberar grep rapidamenteLANGUAGE = C# Encontre as melhores ligaçõesfreq = `grep 10 ': Ret haya | sed é na verdade /(.*//; s /.* // '| look | uniq -c | sort -d | stop | awk' print rrr 2 '| tr'; ''Bate-papo ' 012'> quiet.reg << _EOFREGEDIT4[HKEY_CURRENT_USER Software Wine Debug]"RelayExclude" significa "ntdll.RtlEnterCriticalSection; ntdll.RtlExperimenteEnterCriticalSection; ntdll.RtlLeaveCriticalSection; kernel32.48; kernel32.49; kernel32.94; kernel32.95; kernel32.96Tls32.96el32.97qr97 Set;_EOFVinho Regedit quiet.reg
Isso diz ao Wine para não registrar as dez chamadas frequentes para realmente seu aplicativo, o que deve tornar este relay log mais gerenciável.
Veja também
- Variáveis de ambiente: WINEDEBUG - Capítulo Wine User Manual
- Documentação WineAPI - canais de depuração usados, são quase certamente listados para cada indivíduo obteve.