We now print native stacks in a number of contexts, not just VMError reporting, and we have to try os::platform_print_native_stack else fall back to VMError::print_native stack. That logic should be captured in a single function, suitably located, so that the different client code can use it.
There are some inconsistencies to watch for as we don't have "source info" support with os::platform_print_native_stack, and secondary error reporting seems to assume we must have used VMError::print_native_stack.