How to xdebug hook_views_data_alter()

Lets first talk about what does hook_views_data_alter() do in first place. Views is a query editor, it queries DB, so this hook alters how our data is queried. As in views UI you add, fields, filters, sorts, relationships, here you will have an exposure of all DB tables you can make queries and data on what to use for fields, filters and much more. Most commonly you will try to change handler for some field, so you will use hook_views_data_alter and add some id, for example as stated in views.api file lets suggest 

$data['node_field_data']['title']['field']['id'] = 'node_title';

which states that we will use node_title handler for handling output of title of nodes. Handler id is what will be put in annotation of the class that handles this, looking like this, so basically this is ID of plugin as in D8 we use plugins

 * @ViewsField("node_title")

in your class definition, for full example of this, you can check this tutorial https://www.webomelette.com/creating-custom-views-field-drupal-8

Now on to debugging

Many people tried to debug hook_views_data_alter() by adding breakpoints or debug outputs in actual hook, problem is they didn't succeed in that way to get any info. Right way is to clear cache and then put breakpoint on method that calls this hooks, which is in class class ViewsData
(path /core/modules/views/src/ViewsData.php) around line 233 

  protected function getData() {
    $this->fullyLoaded = TRUE;

    if ($data = $this->cacheGet($this->baseCid)) {
      return $data->data;
    }
    else {

here you can get $data class and $data array inside of it that can be altered, which you will see in full code is done at the part of

$this->moduleHandler->alter('views_data', $data);

so inspecting that will give you info on what you can/need to change to get results you want.