Open
Bug 819765
Opened 12 years ago
Updated 2 years ago
DumpJSStack() doesn't show native frames
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
NEW
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•12 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•10 years ago
|
Assignee: general → nobody
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•