Por um motivo que preciso descobrir, um aplicativo C++ parece estar preso em um contêiner docker.
Eu fiz um docker exec -it a_template_cpp bash
e entrei nele.
Conheço os comandos top
e pmap
e também posso gerar um arquivo de mapa na hora da ligação para me ajudar.
Mas não conheço os comandos do Linux que podem me mostrar o endereço que meu programa está executando no momento em que estou perguntando. Qual é o valor do registrador do contador do programa naquele momento.
Qual é o comando que devo executar para saber disso?
Na prática, a única maneira de ver o que um processo está fazendo atualmente é anexar a ele um depurador.
Costumava ser possível ver o ponteiro de instrução de um processo no 30º campo de
/proc/<pid>/stat
, se você tivesse privilégios suficientes paraptrace
um processo (estritamente falando,PTRACE_MODE_ATTACH_FSCREDS
ePTRACE_MODE_NOAUDIT
):Isso ainda está documentado em
man 5 proc
ouman 5 proc_pid_stat
mas foi desativado por um tempo , a menos que o processo esteja despejando núcleo .