Como os rastreamentos de pilha são gerados?

Nenhum método único em um programa "sabe" onde está na pilha. Tudo o que sabe é o seu próprio trabalho, e faz isso e retorna. Então, quando uma exceção é lançada e um rastreamento de pilha é impresso, de onde vem isso?

Existe implicitamente um Thread separado rodando ao lado de cada aplicativo na JVM que está monitorando o estado do programa? Ou a própria JVM contém essas informações e as Exceções de alguma forma extraem esses dados quando são lançadas?

Se algum destes for o caso, é possível usar alguma chamada para recuperar um rastreio de pilha (do Monitor thread ou da JVM)?sem jogando uma exceção?

questionAnswers(4)

yourAnswerToTheQuestion