Modo somente leitura no gdb

0

Existe gdb modo somente leitura?

Existe uma maneira de restringir o nível do gdb para somente leitura. Portanto, não poderei modificar os dados atuais no gdb.

O gdbserver ou qualquer outra ferramenta pode ajudar nesse caso?

    
por Vivek Goel 21.03.2013 / 08:16

2 respostas

1

Se você não quiser permitir que os desenvolvedores mudem as coisas, por que você não dá a eles um coredump? Um coredump é um despejo do mapa de memória do processo. Com isso e o binário que gera o coredump, você pode depurar seu aplicativo sem executá-lo (apenas precisa de informações de depuração). Para gerar um coredump, use o comando gcore .

    
por 21.03.2013 / 22:14
1

Não há modo somente leitura para o gdb, e o gdb não é a única maneira de depurar um programa de qualquer maneira (ele não possui permissões especiais). O Gdb usa ptrace abaixo, e as permissões ptrace são tudo ou nada.

Existem estruturas de segurança que restringem o uso de ptrace. Por exemplo, As versões recentes do Ubuntu restringem ptrace ao processo pai por padrão . Mas essas restrições são sobre quem pode usar o ptrace em qual processo, não quais comandos ptrace são permitidos. Eu não estou ciente de um framework que tenha permissões refinadas que distinguem entre os comandos ptrace.

Você parece querer permitir que os desenvolvedores investiguem problemas ao vivo em servidores de produção, sem permitir que eles modifiquem a maneira como esses sistemas se comportam. Uma solução para esse problema é executar todos os servidores em máquinas virtuais. Se ocorrer um problema, faça um instantâneo da máquina virtual, copie-a e deixe os desenvolvedores trabalharem a partir do instantâneo (desconectado da rede). Isso facilita o trabalho dos desenvolvedores, pois eles podem reiniciar a depuração quantas vezes quiserem, a partir do instantâneo salvo.

    
por 22.03.2013 / 01:38

Tags