Se você for um desenvolvedor de driver de dispositivo, talvez esteja interessado em criar seus próprios testes do SDT em seu driver do Solaris. O efeito de teste desativado do SDT é essencialmente o custo de várias instruções de máquina não operacionais. Portanto, você é encorajado a adicionar testes do SDT aos seus drivers de dispositivo, se necessário. A menos que estes testes afetem negativamente o desempenho, você pode deixá-los em seu código de envio.
Os testes do SDT são declarados através das macros DTRACE_PROBE , DTRACE_PROBE1, DTRACE_PROBE2, DTRACE_PROBE3 e DTRACE_PROBE4 do <sys/sdt.h>. O nome do módulo e o nome da função de um teste baseado em um SDT correspondem ao módulo do kernel e à função do teste. O nome do teste depende do nome fornecido na macro DTRACE_PROBEn. Se o nome não contiver duas barras inferiores consecutivas (__), o nome do teste será conforme escrito na macro. Se o nome contiver quaisquer duas barras inferiores consecutivas, o nome do teste converterá as barras inferiores consecutivas em um único traço (-). Por exemplo, se uma macro DTRACE_PROBE especificar transaction__start, o teste do SDT será chamado de transaction-start. Esta substituição permite que o código de C forneça nomes de macro que não são identificadores válidos de C sem especificar uma seqüência.
O DTrace inclui o nome do módulo do kernel e o nome da função como parte da tupla que identifica o teste, sendo assim, você não precisa incluir esta informação no nome do teste para evitar colisões de espaço de nome. Você pode usar o comando dtrace -l -P sdt -m módulo em seu módulo do driver para listar os testes que instalou e os nomes completos que serão vistos pelos usuários do DTrace.
Os argumentos de cada teste do SDT são os argumentos especificados na referência de macro DTRACE_PROBEn correspondente. O número de argumentos depende de qual macro foi usada para criar o teste: DTRACE_PROBE1 especifica um argumento, DTRACE_PROBE2 especifica dois argumentos, e assim por diante. Ao declarar seus testes do SDT, você pode minimizar seu efeito de teste desativado, não referenciando os ponteiros e não carregando a partir de variáveis globais nos argumentos do teste. O cancelamento de referência de ponteiro e o carregamento de variável global podem ser feitos com segurança em ações de D que ativam testes, sendo assim, os usuários do DTrace podem solicitar estas ações somente quando necessárias.