David Daney writes: > Andrew Haley wrote: > > MIPS div instructions never trap. However I think that GCC always emits > things like this when it cannot determine that the divisor is non zero: > > div $0,$17,$16 > bne $16,$0,1f > nop > break 7 > 1: > > > >No, there's no reason not to do it. You'll have to write some hairy > >code to satisfy all the rules, though. > > > What are the rules? Are they more complicated then throw an > ArithmeticException when the divisor is zero? Yes. You also have to do if (dividend == (jint) 0x80000000L && divisor == -1) return dividend; and not throw an exception. > > > Q3: Will using SIGTRAP in this manner make debugging programs that > > > divide things by zero very difficult to debug under gdb? > > > >No. > > > > > I have not tried it. But I think gdb uses "break" and SIGTRAP for > breakpoints. Is it possible to get gdb to pass the signal to the > debugee, so that it could be handled by the runtime support? Well, gcj will generate either break or trap instructions. You can tell gdb to ignore either. Andrew.