The answer is actually not so. Int 3 is used to start a breakpoint. The interrupt handler is tiny, and neither the interrupt nor its handler stops any threads.
If the debugger is not loaded, the handler will either ignore it or call the operating system to take some action with an error, for example, raising a signal (possibly SIGTRAP). Not a single thread is damaged.
If there is a debugger in the process, the ISR breakpoint transfers control to it. A breakpoint does not stop a thread except one that breaks. The debugger may try to pause others.
If there is a debugger outside the process, the handler will call it, but it must be mediated through the OS to make a suitable context switch. As part of this switch, the OS suspends debuggee, which means that all its threads will stop.
source share