The standard method for common interrupt service routines (like when you have multiple serial ports using common code) is to have separate service routines with different vectors, but have them load up a register with a unique number (the vector index usually) and then branch to a common service routine. In your case that's where you set the one breakpoint, and then examine the register (or variable where the routine saves the number) to see which one did it. Or you can have the individual routines simply CALL the common function, and when in there you just display a stack-trace to see which service routine called the common one.
Tom