m um manipulador de sinais, como saber onde o programa é interrompid

No Linux x86 (de 64 ou 32 bits) - por exemplo:

void signal_handler(int) {
   // want to know where the program is interrupted ...
}

int main() {
    ...
    signal(SIGALRM, signal_handler);
    alarm(5);
    ...
    printf(...); <------- at this point, we trigger signal_handler
    ...
}

No signal_handler, como podemos saber se somos interrompidos no printf em main (

questionAnswers(4)

yourAnswerToTheQuestion