Hi
You are testing your code (rather than the reference) but you haven't set up a user handler for the ADC0 interrupt. For example:
adc_setup.int_handler = adc_level_change_high; // handling function
If you leave this entry uninitialised it will have the value 0xcccccccc (which VS inserts in all uninitialised locations), which is what the exception is showing.
Therefore I recommend that you follow the reference to avoid missing setup details.
VS and simulation allows massively more power-ful debugging compared to the HW target IDEs so if you make use of it you will find that it makes embedded development much simpler and reliable too.
When you call fnConfigureInterrupt() to set up and start the ADC take a look at the setup struct as follows:

Here you see that the entry int_handler has a valid entry - yours will be 0xcccccccc since you haven't initialised it.
In this reference there are a couple of other uninitialised entries (like the trigger levels) but there are not an issue since this function is not being used in this case.
Once the simulator operates as expected the HW will do so too.
Regards
Mark