Pular para o conteúdo
Skillpedia
Código em geral48 mil · #2887

dwarf-expert

Ajuda seu agente a analisar arquivos de depuração DWARF. Útil para entender informações de depuração e trabalhar com código que as processa.

O que ela faz

Esta ferramenta ajuda a entender e trabalhar com informações de depuração chamadas DWARF. Ela pode explicar o que são esses dados, como usá-los para analisar programas e como verificar se estão corretos.

Quando usar

  • ✓Quando você precisa entender informações de depuração de um programa compilado.
  • ✓Para obter respostas sobre o padrão DWARF (versões 3, 4 e 5).
  • ✓Ao escrever ou revisar código que lida com dados DWARF.

Exemplo do que pedir para a IA

“Como posso verificar se os dados DWARF em meu programa estão corretos usando o comando `llvm-dwarfdump --verify`?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/dwarf-expert/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/dwarf-expert/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela funciona consultando fontes oficiais e exemplos de código sobre o padrão DWARF. Ela também sabe como usar ferramentas como `dwarfdump` e `readelf` para extrair e analisar essas informações.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill dwarf-expert

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/dwarf-expert/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Visão Geral

Esta habilidade fornece conhecimento técnico e expertise sobre o padrão DWARF e como interagir com arquivos DWARF. As tarefas incluem responder a perguntas sobre o padrão DWARF, fornecer exemplos de vários recursos DWARF, analisar e/ou criar arquivos DWARF e escrever/modificar/analisar código que interage com dados DWARF.

Quando Usar Esta Habilidade

  • Entender ou analisar informações de depuração DWARF de binários compilados
  • Responder a perguntas sobre o padrão DWARF (v3, v4, v5)
  • Escrever ou revisar código que interage com dados DWARF
  • Usar dwarfdump ou readelf para extrair informações de depuração
  • Verificar a integridade dos dados DWARF com llvm-dwarfdump --verify
  • Trabalhar com bibliotecas de análise DWARF (libdwarf, pyelftools, gimli, etc.)

Quando NÃO Usar Esta Habilidade

  • Análise DWARF v1/v2: Expertise limitada às versões 3, 4 e 5.
  • Análise Geral de ELF: Use ferramentas ELF padrão se os dados DWARF não forem necessários.
  • Depuração de Executáveis: Use ferramentas de depuração dedicadas (gdb, lldb, etc.) para depurar código executável/comportamento em tempo de execução.
  • Engenharia Reversa de Binários: Use ferramentas de RE dedicadas (Ghidra, IDA) a menos que esteja analisando especificamente seções DWARF.
  • Depuração de Compiladores: Problemas de geração DWARF são específicos do compilador, não cobertos aqui.

Fontes Autoritativas

Quando informações específicas do padrão DWARF forem necessárias, use estas fontes autoritativas:

  1. Padrões Oficiais DWARF (dwarfstd.org): Use a pesquisa na web para encontrar seções específicas da especificação oficial DWARF em dwarfstd.org. Consultas de pesquisa como "DWARF5 DW_TAG_subprogram attributes site:dwarfstd.org" são eficazes.

  2. Implementação DWARF do LLVM: O código de manipulação DWARF do projeto LLVM em llvm/lib/DebugInfo/DWARF/ serve como uma implementação de referência confiável. Arquivos chave incluem:

    • DWARFDie.cpp - Manipulação de DIE e acesso a atributos
    • DWARFUnit.cpp - Análise de unidade de compilação
    • DWARFDebugLine.cpp - Informações de número de linha
    • DWARFVerifier.cpp - Lógica de validação
  3. libdwarf: A implementação de referência em C em github.com/davea42/libdwarf-code fornece manipulação detalhada de estruturas de dados DWARF.

Fluxos de Trabalho de Verificação

Use as opções de verificação llvm-dwarfdump para validar a integridade dos dados DWARF:

Validação Estrutural

# Verify DWARF structure (compile units, DIE relationships, address ranges)
llvm-dwarfdump --verify <binary>

# Detailed error output with summary
llvm-dwarfdump --verify --error-display=full <binary>

# Machine-readable JSON error summary
llvm-dwarfdump --verify --verify-json=errors.json <binary>

Métricas de Qualidade

# Output debug info quality metrics as JSON
llvm-dwarfdump --statistics <binary>

A saída --statistics ajuda a comparar a qualidade das informações de depuração entre versões de compilador e níveis de otimização.

Padrões Comuns de Verificação

  • Após a compilação: Verifique se os binários possuem DWARF válido antes da distribuição
  • Comparando builds: Use --statistics para detectar regressões na qualidade das informações de depuração
  • Depurando depuradores: Identifique DWARF malformado que causa problemas no depurador
  • Desenvolvimento de ferramentas DWARF: Valide a saída do analisador contra binários conhecidos e corretos

Análise de Informações de Depuração DWARF

readelf

Arquivos ELF podem ser analisados através do comando readelf ({baseDir}/reference/readelf.md). Use isso para informações gerais de ELF, mas prefira dwarfdump para análise específica de DWARF.

dwarfdump

Arquivos DWARF podem ser analisados através do comando dwarfdump, que é mais eficaz na análise e exibição de informações DWARF complexas do que readelf e deve ser usado para a maioria das tarefas de análise DWARF ({baseDir}/reference/dwarfdump.md).

Trabalhando com Código

Esta habilidade suporta a escrita, modificação e revisão de código que interage com dados DWARF. Isso pode envolver código que analisa dados de depuração DWARF do zero ou código que utiliza bibliotecas para analisar e interagir com dados DWARF ({baseDir}/reference/coding.md).

Escolhendo Sua Abordagem

┌─ Precisa verificar a integridade dos dados DWARF?
│   └─ Use `llvm-dwarfdump --verify` (veja Fluxos de Trabalho de Verificação acima)
├─ Precisa responder a perguntas sobre o padrão DWARF?
│   └─ Pesquise dwarfstd.org ou consulte o código fonte do LLVM/libdwarf
├─ Precisa de um dump simples de seção ou informações gerais de ELF?
│   └─ Use `readelf` ({baseDir}/reference/readelf.md)
├─ Precisa analisar, pesquisar e/ou descarregar nós DIE DWARF?
│   └─ Use `dwarfdump` ({baseDir}/reference/dwarfdump.md)
└─ Precisa escrever, modificar ou revisar código que interage com dados DWARF?
    └─ Consulte a referência de codificação ({baseDir}/reference/coding.md)

…
Perguntas frequentes

O que são dados DWARF?

Dados DWARF são informações extras incluídas em programas compilados que ajudam ferramentas de depuração a entender o código-fonte original, como nomes de variáveis e funções.

Quais versões do DWARF esta ferramenta entende?

Ela entende as versões 3, 4 e 5 do padrão DWARF.

Posso usar esta ferramenta para depurar um programa em execução?

Não, esta ferramenta é para analisar os dados DWARF em si, não para depurar o comportamento de um programa em tempo real. Para isso, use ferramentas como GDB ou LLDB.

Detalhes

Descrição original do autor

Provides expertise for analyzing DWARF debug files and understanding the DWARF debug format/standard (v3-v5). Triggers when understanding DWARF information, interacting with DWARF files, answering DWARF-related questions, or working with code that parses DWARF data.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2887
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas