I have Workbench but have never used its debugging facilities. The one thing I learned from Workbench, using the Workbench editor, is that I tend to have many routines built on Modules that contain local variables that are never used! Of course, they were once used, or intended to be used. I found the same thing looking at another person's extensive code.
The way I develop is to write and evaluate a routine incrementally looking at intermediate output to make certain it's what I was expecting. I also use Print statements, which I later comment out or delete. This always seems to solve any problems.
I also don't think of Mathematica so much as a programming language or what I do as programming. I think of it more as writing definitions of mathematical objects or actions and writing specifications for graphics and dynamic displays. It is the displays that usually involve the longest code. But again incremental development with evaluation and an occasional Print statement always does the job. I don't think I ever have a routine that goes over one screen. These are not toy applications. They do quite a lot, principally because the Mathematica routines, especially the procedural constructs, do quite a lot.
I thought the more advanced debuggers were for large projects involving lower level code such as C++. It would be interesting to know what kind of project you are undertaking that can't be broken into smaller individually developed and tested routines. What is missing might not be as incrementally useful as you envision.