No. It's the programmer's responsibility to handle poorly-defined behavior.
The summary list of documented cases of UB in C alone is 15 pages long. The undocumented cases are even more numerous - that is, doing things beyond what's even mentioned in the standard. And lets not even mention C++, where the list of poorly-defined behavior could probably be distributed as a separate, thick publication.
And then each single case of UB is wildly different, many of them only appearing in run-time, and the outcome could be anything. The compiler can only do so much to help, it's not it's job to point out potential run-time errors. And then the VS C compiler barely follows the standard in the first place.
Debug builds could actually be worse for detecting UB than release builds. Tools like VS has a tendency to zero-out all memory in debug build - even local memory, making bugs pass unnoticed. And with no/low optimizations in debug mode, some bugs will never manifest themselves.
To weed out undefined behavior, you could use external static/dynamic analysis tools and coding standards such as MISRA or CERT. But in the end it always comes down to language knowledge. Code reviews where some hardened C or C++ veteran get to have a say are very valuable, in order to catch bugs early on.