Como o tratamento de uma interrupção afeta um processo de espaço do usuário multiencadeado?

1

Digamos que eu coloquei um ponto de interrupção ( int 3 de agora em diante) em algum lugar em um código de processo do espaço do usuário. Um dos encadeamentos atinge o breakpoint ... E o que acontece a seguir? Meu julgamento é: isso é uma interrupção, então é tratada no kernel. Eu realmente não me importo com os sinais e interromper os manipuladores e coisas assim, eu só quero saber o que acontece com os outros segmentos do processo de espaço do usuário. Eles estão parados até que o manipulador de interrupções seja executado? Como eles são agendados depois que a interrupção é tratada?

Referências sobre o assunto também seriam muito apreciadas.

    
por Egor Tensin 11.02.2014 / 11:48

1 resposta

0

Na verdade, nada acontece, porque o int 3 é usado apenas por depuradores para definir pontos de interrupção. Caso você execute seu código com um depurador, então também depende do depurador o que acontece. Como usei o int 3 há alguns anos, senti falta do suporte ao lwp. Eu acho que se agora é suportado, então só deve interromper o thread afetado.

    
por 12.02.2014 / 00:49