Lightweight.NET depurador?

eu freqüentemente necessitam de depuração .NET binários em máquinas de teste (teste-máquina, quero dizer que a máquina não tiver o Visual Studio instalado, é freqüentemente re-trabalhada, não É a mesma máquina que eu faço o meu desenvolvimento, etc.).

eu adoro o depurador Visual Studio, mas não é prático para mim instalar estúdios visuais em uma máquina de teste recém-imaginada apenas para depurar uma afirmação ou acidente (a instalação leva muito tempo, a pegada é muito grande, etc).

eu realmente gostaria de um programa instalado rapidamente que poderia entrar em um processo em execução, deixe-me especificar a localização dos símbolos/código fonte, e deixe-me Saltar para a depuração. Para binários nativos, windbg funciona bem, mas eu não encontrei nada semelhante para binários gerenciados. Alguma recomendação?

(como uma nota lateral, eu estou ciente das capacidades de depuração remota do visual studios, mas por alguma razão parece nunca funcionar consistentemente para mim... Muitas vezes tenho uma ligação. questões)

Author: brad, 2008-10-02

8 answers

Para uma interface um pouco mais agradável do que MDbg ou cordbg, dê uma olhada em DbgCLR - uma versão de corte do depurador Visual Studio (pelo menos parece um) que lida apenas com o código gerenciado. Vem com o Framework. Net (Não tenho certeza se está no tempo de execução ou se você precisa do Framework SDK):

Note que o cordbg é depreciado a favor do MDbg (mesmo que o MDbg não tenha todos os cordbg's características):

E ao olhar para trás para o MDbg whle escrevendo este post, descobri que há uma embalagem de GUI disponível para MDbg (que eu não tentei):

 9
Author: Michael Burr, 2008-10-16 21:35:13

Finalmente encontrei extensões para o Windbg que fazem exactamente o que eu queria: Sosex.DLL, permite-me usar o windbg para depurar aplicações geridas com uma instalação mínima necessária. Já o uso há mais de um ano, e funcionou, sem falhas, em todos os cenários de depuração que encontrei.

 5
Author: brad, 2011-02-09 20:56:49

Há sempre mdbg e cordbg, mas eu sugeriria que se investigasse mais porque é que a depuração remota não funciona de forma consistente.

O VS2005 / 8 parece ser muito mais fiável do que as versões anteriores aqui (embora eu faça principalmente de forma não controlada) e evita que você tenha que ter os símbolos acessíveis na máquina de destino.

 4
Author: Rob Walker, 2008-10-02 17:53:55

A versão 2 de O ILSpy contém um depurador. E funciona lindamente!

Ainda está em fase inicial, mas já me ajudou várias vezes. Cuidado com os insectos! :)
 3
Author: leppie, 2011-08-04 05:47:13

Já tentou usar Cracked.NET ?

É uma ferramenta de depuração e programação em tempo de execução que lhe dá acesso aos componentes internos de qualquer aplicação.Net em execução no seu computador.

 1
Author: Jane, 2011-04-16 01:23:24

Você pode verificar para fora MDbg: http://blogs.msdn.com/jmstall/archive/2006/11/22/mdbg-sample-2-1.aspx. Parece que vem com o .NET 3.5 SDK pelo menos (e é, provavelmente, incluído com o 2.0+).

O Windbg geriu extensões (chamadas SOS I believe), embora não saiba se permitem depuração de nível de origem.

 1
Author: Brannon, 2012-12-10 07:15:28

Utilizar dnSpy.

DnSpy é um depurador e editor de montagem. net. Você pode usá-lo para editar e depurar conjuntos, mesmo que você não tenha nenhum código fonte disponível.

É tão maravilhoso. Muito pequeno e leve. Não é necessária nenhuma instalação ou configuração. Sua interface é exatamente como o Visual Studio. Mesmo os seus atalhos são os mesmos que VS.

Características:

Depurador

  • Debug. NET Framework,. net Core and Unity game conjuntos, não é necessário nenhum código-fonte
  • definir pontos de paragem e entrar em qualquer conjunto
  • Locais, observem, janelas automáticas
  • as variáveis windows suportam a gravação de variáveis (eg. descodificadas por 'bytes') para o disco ou vê-las no editor hexadecimal (janela de memória)
  • IDs De Objectos
  • vários processos podem ser depurados ao mesmo tempo
  • interromper a carga do módulo
  • Tracepoints e pontos de paragem condicionais
  • pontos de paragem para exportação/importação e tracepoints
  • pilha de chamadas, tópicos, módulos, processos windows
  • pausa nas excepções atiradas (1st chance)
  • as variáveis Windows suportam avaliar as expressões C# / Visual Basic
  • Os módulos dinâmicos podem ser depurados (mas não métodos dinâmicos devido a limitações CLR)
  • a janela de saída regista vários eventos de depuração, e mostra as datas por omissão:)
  • conjuntos que se descodificam no tempo de execução podem ser depurados, o dnSpy irá usar a memória imagem. Você também pode forçar o dnSpy a usar sempre imagens em memória em vez de arquivos de disco.
  • API pública, pode escrever uma extensão ou usar a janela interactiva C# para controlar o depurador

Editor De Montagem

  • todos os meta-dados podem ser editados
  • Editar métodos e classes em C# ou Visual Basic com IntelliSense, sem código fonte necessário
  • adicionar novos métodos, classes ou membros em C# ou Visual Basic
  • editor do método IL de baixo nível edição
  • as tabelas de metadados de baixo nível podem ser editadas. Isto usa o editor hexadecimal internamente.

Editor Hex

  • clique num endereço no código descompilado para ir para o seu código IL no editor hex
  • reverso de cima, pressione F12 em um corpo IL no editor hex Para ir para o código descompilado ou outra representação de alto nível dos bits. É óptimo descobrir qual a declaração que um patch modificou.
  • realces. net metadata structures and PE estruturas
  • as dicas mostram mais informações sobre os meta-dados. net seleccionados / campo PE
  • Vai para a posição, file, RVA
  • Go to. net metadata token, method body, #Blob / #Strings / #US heap offset ou #GUID heap index
  • siga as referências (Ctrl+F12)

Outros

  • descompilador BAML
  • temas azuis, claros e escuros (e um tema de alto contraste escuro)
  • favoritos
  • a janela interactiva C# pode ser usada no programa dnSpy
  • procurar conjuntos de classes, métodos, cadeias, etc
  • Analisar a utilização da classe e do método, procurar chamadores etc
  • várias páginas e grupos de tabulações
  • as referências estão realçadas, use Tab / Shift+Tab para passar para a próxima referência
  • vá ao ponto de entrada e comandos de inicialização do módulo
  • ir para os comandos da meta-dados ou da linha de meta-dados
  • dicas de código (C# E Visual Basic)
  • exportar para o projecto
 1
Author: Mahmoodvcs, 2018-09-08 14:08:40

Talvez possas tentar usara sintonização ao vivo combinada com um servidorOcf ?

Não é um depurador per-se, mas é muito fácil conseguir uma ligação entre uma aplicação e sintonização ao vivo. Tipo, literalmente 3 linhas de código. Então você tem acesso a todas as variáveis que você escolhe publicar.

Achei útil ao tentar depurar os meus programas sem ter acesso ao código descompilado ou a um depurador real. Não se pode ter pontos de paragem, mas acontece que há às vezes, melhores maneiras de depurar.

 0
Author: user3581940, 2014-04-28 15:33:00