LMDBG

Tela Software:
LMDBG
Detalhes de Software:
Versão: 1.2.0
Data de upload: 20 Feb 15
Revelador: Aleksey Cheusov
Licença: Livre
Popularidade: 16

Rating: 5.0/5 (Total Votes: 1)

LMDBG é uma aplicação que permite detectar memória leaksand liberta casal & nbsp;. No entanto, ao contrário de outros, LMDBG gera * TOTAL * stacktracesand separa o login a partir da análise thusallowing para analisar um pedido de base por módulo.
- lmdbg-run é um utilitário lmdbg principal. Ele roda um aplicativo e cria um arquivo de log (ou FIFO), onde todos chamados malloc / calloc / realloc / livre / memalign / invocações posix_memalign são registrados com o seu contributo (contagem bytes, do ponteiro), saída (ponteiro) e (!!! uniques característica !!!) COMPLETO stacktrace (ponteiros).
Exemplo:
& Nbsp; & nbsp; & nbsp; & nbsp; Testes $ cat / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; #include
& Nbsp; & nbsp; & nbsp; & nbsp; int main ()
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; void * p1 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; void * p2 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p1 = malloc (555);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (P2, 666);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (P2, 777);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = realloc (P2, 888);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; retornar 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 -g -o _test2 testes / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg prazo -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
NOTA: stacktrace completa que permite analisar a sua aplicação, ou seja, você pode detectar o que blocos / componentes requerem mais memória do que os outros e por quê. lmdbg-sym é uma ferramenta muito importante para isso, veja abaixo.
- lmdbg-vazamentos analisa um arquivo de log gerado pelo lmdbg-run e saída de todos os vazamentos de memória encontrados
Exemplo:
& Nbsp; & nbsp; & nbsp; & nbsp; $ lmdbg-vazamentos _log & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sym converte endereços para source.c: 999 se é possível
Exemplo (GDB (1) está em acção):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 8 principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 9 principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
Exemplo (addr2line (1) funciona aqui):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-sym -a ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 9
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 10
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-sysleaks - greps ou ignora sistema vazamentos de memória encontrados em libc, libdl, C ++ STL etc. Veja testes / lmdbg * .conf arquivos. Os arquivos de configuração padrão são: ~ / .lmdbg.conf e /etc/lmdbg.conf
- lmdbg = lmdbg-Run + lmdbg-vazamentos + lmdbg-sym + lmdbg-sysleaks
Isso é lmdbg é tudo-em-uma ferramenta de nível superior.
Exemplo:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; Vazamentos de memória foram detectados e salvos em um arquivo '_log'
& Nbsp; & nbsp; & nbsp; & nbsp; $ Cat _log
& Nbsp; & nbsp; & nbsp; & nbsp; realloc (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; testes / test2.c: 8 principal
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

O que é novo nesta versão:

  • lmdbg-sym já não segfaults devido a problemas com stacktrace (3).
  • Um método de conversão de endereços muito mais simples e correto foi adicionado.
  • Havia speedups significativas devido a otimizações para gdb.
  • Em lmdbg-run, GLIBC ganchos malloc não são mais usados.
  • código próprio lmdbg não está incluído no stacktraces.
  • Uma nova opção -N foi adicionado, e a opção -v recebeu uma pequena correção.
  • lmdbg-stat recebeu correções para a remoção de referência NULL que apareceu se um livre (3) ou realloc (3) stacktrace estava sem um adequado malloc / realloc (3) stacktrace.
  • Havia outras pequenas correções e melhorias, melhorias nos testes de regressão, e melhorias na stacktrace (3).

O que é novo na versão 1.1.0:.

  • A correção em testes de regressão
  • lmdbg-run: endereços de zero são removidos stacktraces gerados pelo registo de chamadas do glibc (3)
  • .
  • Isso corrige afirma em lmdbg-stat (1).
  • Double & quot; 0 x & quot; problemas no & quot; Informação seção & quot; foram fixados (visto em NetBSD).
  • backtrace (3) a partir libexecinfo (se disponível) é usado em vez do built-in de implementação.
  • lmdbg-sym:. Alguns bugs foram corrigidos na conversão de endereços de símbolos
  • lmdbg-stat: incompleta ler linhas estão agora ignorado, para que não haja mais afirmam (3) é quando um aplicativo que está sendo depurado é morto
  • .
  • Uma implementação alternativa escrito em awk foi removido.

O que é novo na versão 0.17.0:

  • Esta versão acrescenta uma série de melhorias e correções em páginas de manual, novas capacidades em lmdbg, lmdbg-run, e lmdbg-sym e pequenas correções para lmdbg-stat.
  • lmdbg é agora uma ferramenta de meta, que é capaz de fazer muitas coisas mais, não apenas encontrar falhas de memória.

O que é novo na versão 0.15.1:

  • Registro de calloc (3) invocações está desabilitado em sistemas baseados em glibc (Linux, GNU / kFreeBSD, e talvez outros) porque lmdbg-run não sobre eles.
  • Menores limpezas, correções e melhorias. mk-configure & gt;. = 0,20 é necessária para a construção

O que é novo na versão 0.14.0:

  • Novas ferramentas: lmdbg-stat, lmdbg-grep e lmdbg-ordenação para coleta e análise de informações estatísticas sobre as alocações de memória.
  • lmdbg-run: novas opções para lmdbg prazo:. -S E -M para gerar stacktraces encurtados
  • lmdbg-sym:. -p Nova opção para a obtenção nome do programa a partir da saída do lmdbg-run
  • correção: 'test mkcmake' remove os arquivos temporários
  • .

Programas semelhantes

WingDBG
WingDBG

20 Feb 15

jarvis
jarvis

20 Feb 15

Meliae
Meliae

11 May 15

Outro software de desenvolvedor Aleksey Cheusov

runawk
runawk

19 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Comentário para LMDBG

Comentários não encontrado
Adicionar comentário
Ligue imagens!