Closed Bug 1558771 Opened 5 years ago Closed 5 years ago

Cannot set breakpoints anymore on all javascript lines

Categories

(DevTools :: Debugger, defect, P2)

67 Branch
defect

Tracking

(firefox72 fixed)

RESOLVED FIXED
Firefox 72
Tracking Status
firefox72 --- fixed

People

(Reporter: rf, Assigned: bhackett1024)

References

(Blocks 2 open bugs)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

Steps to reproduce:

Windows 7 or Windows 10, Firefox 67.0.2

  1. goto https://www.boll.ch/breakpoint_test.php
  2. Start Javascript debugger
  3. Reload the test page

Actual results:

There are 3 javascript sections (2 in the head section, 1 in the body section).
Since Version 67 it is not anymore possible to set breakpoint on all javascript lines.
Sometimes I can set them only in the first script section, sometimes only in the second script section.

Expected results:

I have a web application with about 1'000'000 lines of code and thousands of script sections. Debugging is not possible anymore. It seems that Firefox doesn't recognize script sections correctly anymore.

Component: Untriaged → Debugger
Product: Firefox → DevTools
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3

I'm experiencing exactly the same behaviour as rf described since last week (at least). I have FF 67.0.2 64 bits.
I spent hours to figure out what caused the problem, before realizing it was a bug. Please assign a higher priority to its resolution : for me it's a real blocker, I even had to temporarily switch to Chrome because of it.

I am experiencing same issue on FF 67.0.4 64bit .
I found a bothersome work around / fix . if close the devtools and refresh the page and then open devtools , then the adding breakpoints start to work.
but if I refresh the page while devtools are open , then after page refresh I can not add breakpoints by any method.

Ali: This workaround seems not to work on the breakpoint_test.php page above. Closing devtools, refreshing the page and reopening devtools has the effect, that it's possible to set breakpoints in one of the script sections but not always the same. A random section seems to be active then.

I think that I am not allowed to change priority of this bug, but this makes devtools completely unusable for debugging. Please give it a higher priority.

I tested this in 69 and here is my STRs:

  1. Load https://www.boll.ch/breakpoint_test.php
  2. Open DevTools and select the Debugger panel
  3. Reload the page
  4. Create BPs at lines 7, 15, 26. I am able to create BPs in all three sections, but sometimes it's possible (ie BP locations fetched/applied properly from the server side) after the section (script) is executed the first time (or the Debugger breaks in that section for the first time).
  5. Reload the page. Only BP at line 7 stays, all the other are gone -> BUG (but the Debugger breaks at the lines where BPs are supposed to be)

Honza

I am still able to reproduce the problem:

  1. Load https://www.boll.ch/breakpoint_test.php
  2. Open DevTools and select the Debugger panel
  3. Reload the page
  4. Create BPs at lines 7, 15, 26.
  5. Reload the page. Only BP at line 7 stays, all the other are gone -> BUG

But the Debugger breaks at the lines where BPs are supposed to be.

@Brian, any tips what could be wrong here?

Honza

Flags: needinfo?(bhackett1024)

The problem here is that when reloading, the pending breakpoints (representing all the old breakpoints the debugger keeps in its local store) are only synced with the possible breakpoint positions on a source the first time we see that source. If we don't yet have the breakpoint positions for all scripts in the source, we only show the breakpoints we were able to find. The debugger still hits the breakpoints which aren't shown in the UI because the pending breakpoints have all been set in the server.

This is fixed by syncing breakpoints whenever we see a new script for the source. There is still a bit of oddness here though because after reloading, we still only see one breakpoint. This is because scripts for later <script> elements will not be created until the earlier script elements have finished executing, which hasn't happened yet when we pause at the first breakpoint. Resuming causes the debugger to both pause and show the breakpoint for the later positions.

Flags: needinfo?(bhackett1024)
Assignee: nobody → bhackett1024
Status: NEW → ASSIGNED
Pushed by bhackett@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0fc431c94ad2
Sync breakpoints when new source actors appear, r=loganfsmyth.
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 72
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: