Guia de rastreamento dinâmico Solaris

Ponteiros para objetos do DTrace

O compilador de D proíbe o uso do operador & para obter ponteiros para objetos do DTrace, tais como matrizes de associação, funções internas e variáveis. Você não pode obter o endereço dessas variáveis, para que o ambiente de tempo de execução do DTrace esteja livre para realocá-las, conforme necessário, entre os acionamentos de teste, de forma a gerenciar de maneira mais eficaz a memória necessária para os seus programas. Se você cria estruturas compostas, é possível construir expressões que recuperem o endereço do kernel do armazenamento do objeto do DTrace. Você deve evitar a criação de tais expressões em seus programas em D. Se você precisar usar uma expressão como essa, certifique-se de não armazenar em cache o endereço entre os acionamentos de teste.

Em ANSI-C, os ponteiros também podem ser usados para realizar chamadas de função indireta ou atribuições, tal como a criação de uma expressão usando o operador unário de cancelamento de referência * no lado esquerdo de um operador de atribuição. Em D, esses tipos de expressões usando ponteiros não são permitidos. Você só pode atribuir valores diretamente para variáveis de D usando o nome delas ou aplicando o operador de índice de matriz [] a uma matriz escalar ou de associação de D. Você só pode chamar funções definidas pelo ambiente do DTrace por nome, conforme especificado no Capítulo 10Ações e sub-rotinas. As chamadas de função indiretas usando ponteiros não são permitidas em D.