Assertions could have a wider usability in the C language if in the time the assertion is throw, the stack-trace of the call-stack is printed on the screen, preferably going to the IDE debugger too.
I would love to use assertions everywhere in my program, but today I use them only for testing for NULL parameters given in the start of a function. There is no way to us to find where the bug originated from, a big lack of information for the majority types of programs.