Closed
Bug 819765
Opened 13 years ago
Closed 1 year ago
DumpJSStack() doesn't show native frames
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
INACTIVE
People
(Reporter: neil, Unassigned)
References
Details
(Keywords: regression)
I was trying to debug what I at the time was a strange bug in UI code, and managed to set a breakpoint at the function that was going wrong. I wanted to see how the function had been reached so I got the debugger to invoke DumpJSStack() for me. However the stack frames made no sense until it dawned on me that there were some C++ stack frames in between. Previous versions of Gecko used to print a placeholder where control flow entered and exited C++.
Example:
--- native frame missing here ---
0 set_label() ["chrome://global/content/bindings/general.xml":0]
this = [object XULElement @ 0xbb87630 (native @ 0xb133ee0)]
1 anonymous() ["chrome://messenger/content/mailWindow.js":341]
this = [object Object]
--- native frame missing here ---
2 loadStartPage() ["chrome://messenger/content/mailWindow.js":491]
this = [object ChromeWindow]
3 FolderPaneSelectionChange() ["chrome://messenger/content/commandglue.js":839]
this = [object ChromeWindow]
4 onselect() ["chrome://messenger/content/messenger.xul":1]
this = [object XULElement @ 0xb64f9e0 (native @ 0xaa45d70)]
--- native frame missing here ---
5 ChangeSelection() ["chrome://messenger/content/msgMail3PaneWindow.js":1278]
this = [object ChromeWindow]
6 SelectFolder() ["chrome://messenger/content/msgMail3PaneWindow.js":1401]
this = [object ChromeWindow]
7 loadStartFolder() ["chrome://messenger/content/msgMail3PaneWindow.js":890]
this = [object ChromeWindow]
Comment 1•13 years ago
|
||
JS::FormatStackDump has switch from FrameRegsIter-like iteration to ScriptFrameIter which only iterate on script frames. One of the problem is that FormatFrame function use the pc() function, which is meaning less on non-scripted frames.
NB: FormatFrame should be renamed StackFrame::dump, and handle any frame which can be encoded in a StackFrame. StackIter should provide a function dump, and a function dumpStack for replacing JS::FormatStackDump.
| Assignee | ||
Updated•11 years ago
|
Assignee: general → nobody
Updated•3 years ago
|
Severity: normal → S3
Updated•1 year ago
|
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → INACTIVE
You need to log in
before you can comment on or make changes to this bug.
Description
•