Currently it is a scripting error to try and pass a negative value to setdebug (ie setdebug(-2)). Doing so it useful if you want to suppress errors in a section of your script while still allowing for critical and alert messages.
The attached patch is a simple one line fix that allows negative numbers for setdebug. Note that I did not have a chance to regression test to make sure setdebug(1), etc still work correctly. The patch may also make setdebug(+2) valid, but I went for minimal code change for the patch.