Execute ps -l
no ID do processo e verifique a coluna S
(“estado”). Se o estado for R
, seu processo estará executando o código. Se o processo permanecer no estado R
e strace
não mostrar que está executando nenhuma chamada do sistema, o processo será interceptado em um cálculo muito longo e possivelmente infinito. Se o processo estiver e permanecer no estado D
, ele será bloqueado em uma chamada do sistema. Para obter mais informações sobre estados de processo, consulte O que este processo STAT indica? ? , O que faz o "sono interrompível "indicar estado? e E se? kill -9 'não funciona? .
Se o processo estiver executando uma computação longa, você pode usar o Gdb (ou outro depurador) para ver o que está fazendo. Se o executável não tiver informações de depuração (o que geralmente é o caso se você não compilou o programa especialmente para isso), o depurador só poderá mostrar as instruções da máquina; se o executável contiver informações de depuração, você poderá ver os nomes das funções nos rastreamentos de pilha e assim por diante. Para anexar o Gdb ao processo, execute gdb /path/to/executable 1234
, em que 1234
é o ID do processo. O comando s
permite executar instruções uma por vez. A menos que você seja um programador e esteja familiarizado com o que o programa deveria estar fazendo, há poucas chances de obter informações úteis do Gdb nesse cenário.