New methods of debugging

if you were to create a new programming language, what kind of new/unknown debugging methods would you have for it?

Other urls found in this thread:

en.m.wikipedia.org/wiki/Delta_debugging
sourceware.org/gdb/current/onlinedocs/gdb/Reverse-Execution.html#Reverse-Execution
youtube.com/watch?v=KCWVusIztlY
twitter.com/AnonBabble

make the languega tell you what's wrong and how to fix it!

it might be possible to some extent if something like en.m.wikipedia.org/wiki/Delta_debugging can be fully automated. at least for the what went wrong part.

Probably just Common Lisp's debug methods together with checkpointing. This doesn't really require a new language though.

The field of debugging is complete. I can't imagine any new kind of print statement that one might need. Every existing language supports comprehensive string and number printing. More modern languages support printing of arbitrary data types, including arrays and structures. I've seen some languages that will even print out function definitions. Everything a person could need printed can already be printed, there is nothing new to add.

...

This, when a Common Lisp program crashes you are dropped right into the debugger. You can fix the source code, re-compile it and have your program running right at the point where it crashed. Not to mention that the debugger is running in Lisp as well, so you use the same language for debugging as for writing the code.

Don't forget *debugger-hook*.

I'd provide a graphical map of all instantiated objects that could be navigated.

Most IDEs provide both call and type hierarchy tree views.