Prevent and troubleshoot runtime issues

You inherited a working application that began as a proof of concept but was eventually adopted as a production application without being refactored. Many new requirements need to be added. As part of your initial analysis, you notice a lot of problems with bad data. Which solutions will help remediate this issue? (Choose all that apply)

Adding code contracts to ensure that the return values meet specific criteria
Running the Performance Wizard to sample CPU usage
Adding code contracts to ensure that objects do not become invalid during process
Running the Visual Studio profiler to analyze application flow
Adding code contracts to ensure that the input parameters have expected values