Embora o DTrace no FreeBSD seja semelhante ao encontrado no Solaris™, existem diferenças. A principal diferença é que no FreeBSD, o DTrace é implementado como um conjunto de módulos do kernel e o DTrace não pode ser usado até que os módulos sejam carregados. Para carregar todos os módulos necessários:
#
kldload dtraceall
Começando com o FreeBSD 10.0-RELEASE, os módulos são carregados automaticamente quando o dtrace
é executado.
O FreeBSD usa a opção do kernel DDB_CTF
para ativar o suporte para carregar dados CTF dos módulos do kernel e do próprio kernel. O CTF é o Solaris™ Compact C Type Format, que encapsula uma forma reduzida de informações de depuração semelhantes ao DWARF e aos veneráveis stabs. Os dados do CTF são adicionados aos binários pelas ferramentas de compilação ctfconvert
e ctfmerge
. O utilitário ctfconvert
analisa as seções de depuração do DWARF ELF criadas pelo compilador e o ctfmerge
mescla as seções do ELF do CTF dos objetos em executáveis ou bibliotecas compartilhadas.
Alguns provedores diferentes existem para o FreeBSD não para o Solaris™. O mais notável é o provedor dtmalloc
, que permite rastrear malloc()
por tipo no kernel do FreeBSD. Alguns dos provedores encontrados no Solaris™, como cpc
e mib
, não estão presentes no FreeBSD. Estes podem aparecer em futuras versões do FreeBSD. Além disso, alguns dos provedores disponíveis em ambos os sistemas operacionais não são compatíveis, no sentido de que suas sondas têm tipos de argumentos diferentes. Assim, os scripts D escritos em Solaris™ podem ou não funcionar sem modificações no FreeBSD, e vice-versa.
Devido as diferenças de segurança, somente o root
pode usar o DTrace no FreeBSD. O Solaris™ possui algumas verificações de segurança de baixo nível que ainda não existem no FreeBSD. Como tal, o /dev/dtrace/dtrace
é estritamente limitado ao root
.
O DTrace se enquadra na licença Common Development and Distribution License (CDDL). Para ver esta licença no FreeBSD, consulte /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE
ou acesse on-line em http://opensource.org/licenses/CDDL-1.0
. Enquanto um kernel do FreeBSD com suporte a DTrace é licenciado sob BSD, o CDDL é usado quando os módulos são distribuídos em formato binário ou quando os binários são carregados.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.