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.