Enviando uma string para strace para “printf debugging”

2

Embora existam versões de linha de comando do strace para windows, o equivalente de strace no windows é o procmon Sysinternals. Além de permitir a visualização de arquivos, registro, rede e outras chamadas de sistema, o comando procmon permite que você envia uma string simples para ele para permitir a depuração printf () .

Existe uma chamada de API equivalente que eu possa fazer no unix que enviará uma mensagem arbitrária para sua saída de strace?

    
por Justin Dearing 04.12.2014 / 21:24

1 resposta

2

Pensando fora da caixa, você poderia chamar write() com um descritor de arquivo que não faz nada com as gravações. Por exemplo,

int main()
{
    int d = open("/dev/null", 0);
    write(d, "hello world", 11);
}

Parte da saída strace resultante no meu sistema é:

open("/dev/null", O_RDONLY)             = 3
write(3, "hello world", 11)             = -1 EBADF (Bad file descriptor)

Isso é suficiente para mensagens curtas (as mais longas podem ser truncadas por strace).

    
por 04.12.2014 / 21:32

Tags