8

Dodałem punkt przerwania do następującego kodu w linii 44 debugger;. Spodziewałem się, że chrome zatrzyma się za każdym razem przed wykonaniem console.log("..."). Ale ku mojemu zaskoczeniu zatrzymuje się tylko jeden raz.Chrome debugger nie zatrzymuje się

Aby przetestować przykład:

  1. Run fragment poniżej w Chrome
  2. Otwórz Chrome Dev Narzędzia
  3. przeciągnąć obraz z innej strony w obszarze rozwijanym

W tym momencie chrome zatrzymuje się w punkcie przerwania. Ale jeśli spojrzysz na konsolę, powinieneś zauważyć, że instrukcja console.log została wykonana jeszcze dwa razy.

Chciałbym wiedzieć, dlaczego tak się dzieje. (Problem z gwintowaniem?)

I jak mogę to rozwiązać, jeśli chcę debugować kod w tym wierszu.

$(document).ready(function() { 
 

 
    $('#drop-area').on("dragover", function(event) { 
 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 
    $(this).addClass('dragging'); 
 
    }); 
 

 
    $('#drop-area').on("dragleave", function(event) { 
 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 
    $(this).removeClass('dragging'); 
 
    }); 
 

 
    $('#drop-area').on("drop", function(event) { 
 
    event.preventDefault(); 
 
    event.stopPropagation(); 
 

 
    var count = 1; 
 
    var dropObj = event.originalEvent.dataTransfer; 
 
    for (var i = 0; i < dropObj.items.length; i++) { 
 
     var aDropItm = dropObj.items[i]; 
 
     if (aDropItm.kind == "file") { 
 
     //ignore 
 
     } else { 
 
     aDropItm.getAsString(function(_str) { 
 
      debugger; //The debugger should stop here every time before the string is printed to the console 
 
      console.log("This was called [" + count++ + "] times"); 
 
     }); 
 
     } 
 
    } 
 
    }); 
 

 
});
#drop-area { 
 
    background-color: red; 
 
    width: 400px; 
 
    height: 400px; 
 
}
<div id="drop-area">Drop files here...</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

EDIT
Zgłosiłem to jako błąd tutaj: https://bugs.chromium.org/p/chromium/issues/detail?id=748923

+1

Jedyne błędy szybkiego wyszukiwania [listy błędów Chromium] (https://bugs.chromium.org/p/chromium/issues/list) pojawiły się w odniesieniu do map źródłowych ([ex] (https: // bugs .chromium.org/p/chromium/issues/detail? id = 459499)), których tu nie ma. Jeśli nikt nie wskazuje na coś oczywistego, brakuje nam, prawdopodobnie warto tam zgłosić. Nie zdziwiłbym się, gdyby był wynikiem optymalizacji, choć zaskakujące jest to, że kod został zoptymalizowany za pomocą instrukcji 'debugger;'. –

+1

Nie byłem pewien, czy to błąd, czy mój błąd. Opublikuję go w liście błędów, jeśli nie dojdę do rozwiązania. – Lars

+0

Dodaj link do chrome chrome tutaj, aby inni mogli go znaleźć :) Może to być nawet uznane za "Odpowiedź" – styfle

Odpowiedz

1

Problem nie stało już. Wygląda na to, że był to błąd w chrome.