Closed
Bug 1191188
Opened 9 years ago
Closed 4 years ago
Debugger does not show sources that have been reclaimed by GC
Categories
(DevTools :: Debugger, defect, P5)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: github.wsot, Unassigned)
References
(Depends on 3 open bugs, Blocks 1 open bug)
Details
Attachments
(1 file)
(deleted),
image/png
|
Details |
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
Steps to reproduce:
1. Open http://digitalfeed.net/chromium_issue_415406.html
2. From the hamburger menu, choose Developer/Toggle Tools (to open developer tools)
3. Select the 'Debugger' tab
4. Observe with displeasure that not all scripts are displayed
(If you refresh with the Debugger open, all scripts will appear)
On Mac OSX.
Actual results:
In Debugger tab, only the first script is shown, not the second
Expected results:
Both scripts should have appeared in the Debugger
Reporter | ||
Updated•9 years ago
|
OS: Unspecified → Mac OS X
Hardware: Unspecified → x86_64
Reporter | ||
Comment 1•9 years ago
|
||
Also present on:
Win 7 x86_64 Firefox 39
Win 7 x86_64 Firefox 40 (Beta)
Win 7 x86_64 Firefox 41 (Aurora)
Reporter | ||
Comment 2•9 years ago
|
||
*May* only occur when the body tag of the IFrame is empty?
Occurs on:
http://digitalfeed.net/chromium_issue_415406.html
Never seems to occur on:
http://digitalfeed.net/firefox_issue_1.html
http://digitalfeed.net/firefox_issue_2.html
Which are virtually identical, but have content in the body tag.
Comment 3•9 years ago
|
||
I suspect that the missing sources have been garbage collected. Are they defining any functions on the window?
Comment 4•9 years ago
|
||
Yes, confirmed that the missing iframe's source does not define any functions that stay alive, and so it gets reclaimed by the GC.
This shouldn't be specific to iframes.
This is very difficult to debug because it appears to be random and could be from the C++ side?
(also this is not iframe specific, I've seen it in other areas)
=== transport.js ===
Why does the orginal packet include 6 sources when there is only 2 to display? I was trying to set a breakpoint if the sources.length < 2.
=== debugger-controller.js : _onSourcesAdded: function(aResponse)===
aResponse.sources.length = 6 // aRespone.sources includes duplicates
// Add all the sources in the debugger view sources container.
for (let source of aResponse.sources) {
// Ignore bogus scripts, e.g. generated from 'clientEvaluate' packets.
if (NEW_SOURCE_IGNORED_URLS.indexOf(source.url) == -1) {
DebuggerView.Sources.addSource(source, { staged: true });
}
}
=== sources-view.js : 183 ===
This seems like a complicated bug. Is there anyway to use a test case or conditional breakpoint?
We are seeing 6 scripts (with duplicates) when there are only 2 and sometimes there is 1 missing (the main problem). After several page reloads (see screen shot) you can get up to 10 scripts.
==== debugger-controller.js : _onNewSource: function(aNotification, aPacket) ===
Is there a way to set a conditional breakpoint and check the number of scripts in the packet?
Updated•6 years ago
|
Product: Firefox → DevTools
Comment 9•4 years ago
|
||
This was addressed by https://bugzilla.mozilla.org/show_bug.cgi?id=1572596.
Status: UNCONFIRMED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•