dtruss SQL-Queries no Mac OSX

0

Em nossa loja, temos um ambiente não homogêneo e fazemos Java em caixas diferentes - principalmente Mac OSX, eu no Linux e uma caixa do Windows. Quando se trata de depurar consultas JPQL e seu resultado SQL, é necessário ler SQL simples . Eu encontrei uma possibilidade ao usar o _general_log_ no msql e deixar o servidor fazer o log de consultas. Como sou um desenvolvedor preguiçoso, pensei em uma abordagem mais rápida para obter resultados diretos .

Na minha caixa do Linux, simplesmente strace -p $CATALINAsPID -f -q - s 9999 - e sendtoe deixo minha consulta executar. sendtoé a chamada do sistema que contém o SQL simples .

Eu queria fazer o mesmo para o Mac OSX e encontrei dtruss(um fassade para o dtrace ?), O que faz coisas semelhantes strace. Então, tentei reduzi-lo para sendto(analógico para Linux) - mas sem sucesso.

Como o dtruss funciona, respectivamente: como faço para rastrear o SQL simples ?

Thomas Junk
fonte

Respostas:

0

Eu encontrei uma maneira hacky, para obter o que eu quero: basta escrever um script dtrace como:

syscall::sendto:entry
/pid == $setPIDHere/
{
    tracemem((copyin(arg1, arg2)),9999);
}

E pegue o resultado. Hacky, mas funciona

Thomas Junk
fonte