Different components react to errors or assertion failure differently. Note that the following remarks are general principles; exceptions are not uncommon. Always cross-reference against the source code to be sure.
VMM32 uses int 3 for code coverage, int 1 for fatal errors, Debug_Out for assertion failures.
IOS uses int 3 for code coverage and Debug_Out for assertion failures. (Though it occasionally uses int 3 for assertion failures, too.)