Closed Bug 312651 Opened 20 years ago Closed 9 months ago

js_ReportUncaughtException creates report without setting script error properties

Categories

(Core :: JavaScript Engine, defect)

x86
Windows XP
defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: WeirdAl, Unassigned)

References

()

Details

(Keywords: testcase)

Note bug 104360, which may eventually hide this assertion without really fixing it. Steps to reproduce: (1) Apply patch from bug 312630 and rebuild debug (2) Launch SeaMonkey navigator window (3) Open sidebar (4) Close SeaMonkey navigator window We hit the assertion on the sourceLine not being defined. 00 ntdll!DbgBreakPoint 01 xpcom_core!nsDebugImpl::Break(char * aFile = 0x00df7350 "m:/mozilla/js/src/xpconnect/src/nsScriptError.cpp", int aLine = 132)+0x7e 02 xpcom_core!nsDebugImpl::Assertion(char * aStr = 0x00df7390 "Need a non-null source code line for the console service!", char * aExpr = 0x00df7384 "sourceLine", char * aFile = 0x00df7350 "m:/mozilla/js/src/xpconnect/src/nsScriptError.cpp", int aLine = 132)+0x29e 03 xpcom_core!NSGlue_Assertion(char * aStr = 0x00df7390 "Need a non-null source code line for the console service!", char * aExpr = 0x00df7384 "sourceLine", char * aFile = 0x00df7350 "m:/mozilla/js/src/xpconnect/src/nsScriptError.cpp", int aLine = 132)+0x4d 04 xpc3250!nsScriptError::Init(unsigned short * message = 0x0012eb74, unsigned short * sourceName = 0x0012ead4, unsigned short * sourceLine = 0x00000000, unsigned int lineNumber = 0, unsigned int columnNumber = 0, unsigned int flags = 2, char * category = 0x01a005ac "chrome javascript")+0x4a 05 gklayout!NS_ScriptErrorReporter(struct JSContext * cx = 0x00a96d80, char * message = 0x033d2708 "TypeError: this.docShell has no properties", struct JSErrorReport * report = 0x0354c478)+0x3c7 06 js3250!js_ReportErrorAgain(struct JSContext * cx = 0x00a96d80, char * message = 0x03b62200 "TypeError: this.docShell has no properties", struct JSErrorReport * reportp = 0x0354c478)+0xc9 07 js3250!js_ReportUncaughtException(struct JSContext * cx = 0x00a96d80)+0x32d 08 js3250!JS_CallFunctionValue(struct JSContext * cx = 0x00a96d80, struct JSObject * obj = 0x03164eb0, long fval = 51789496, unsigned int argc = 0, long * argv = 0x00000000, long * rval = 0x0012ed44)+0x3b 08 js3250!JS_CallFunctionValue(struct JSContext * cx = 0x00a96d80, struct JSObject * obj = 0x03164eb0, long fval = 51789496, unsigned int argc = 0, long * argv = 0x00000000, long * rval = 0x0012ed44)+0x3b 0a gklayout!nsXBLPrototypeBinding::BindingDetached(class nsIContent * aBoundElement = 0x030c0978)+0x2e 0b gklayout!nsXBLBinding::ExecuteDetachedHandler(void)+0x25 0c gklayout!ExecuteDetachedHandler(void * aBinding = 0x0318c4f8, void * aClosure = 0x00000000)+0x39 0d xpcom_core!nsVoidArray::EnumerateForwards(<function> * aFunc = 0x01609cf0, void * aData = 0x00000000)+0x52 0e gklayout!nsBindingManager::ExecuteDetachedHandlers(void)+0x42 0f gklayout!nsGlobalWindow::HandleDOMEvent(class nsPresContext * aPresContext = 0x02241d08, class nsEvent * aEvent = 0x0012eec4, class nsIDOMEvent ** aDOMEvent = 0x0012ee88, unsigned int aFlags = 7, nsEventStatus * aEventStatus = 0x0012eec0)+0x2c8 10 gklayout!DocumentViewerImpl::PageHide(int aIsUnload = 1)+0xef 11 docshell!nsDocShell::FirePageHideNotification(int aIsUnload = 1)+0x5c 12 docshell!nsDocShell::Destroy(void)+0x165 13 appshell!nsXULWindow::Destroy(void)+0x348 14 appshell!nsWebShellWindow::Destroy(void)+0x14a 15 appshell!nsWebShellWindow::HandleEvent(class nsGUIEvent * aEvent = 0x0012f1d8)+0x291 16 gkwidget!nsWindow::DispatchEvent(class nsGUIEvent * event = 0x0012f1d8, nsEventStatus * aStatus = 0x0012f1bc)+0xb5 17 gkwidget!nsWindow::DispatchWindowEvent(class nsGUIEvent * event = 0x0012f1d8)+0x24 18 gkwidget!nsWindow::DispatchStandardEvent(unsigned int aMsg = 0x65)+0x50 19 gkwidget!nsWindow::ProcessMessage(unsigned int msg = 0x10, unsigned int wParam = 0, long lParam = 0, long * aRetValue = 0x0012f614)+0x618 1a gkwidget!nsWindow::WindowProc(struct HWND__ * hWnd = 0x001c03e0, unsigned int msg = 0x10, unsigned int wParam = 0, long lParam = 0)+0x134
reportp 0x0354c478 struct JSErrorReport * |-filename 0x03e24af8 "chrome://global/content/bindings/browser.xml" |-lineno 0 |-linebuf 0x00000000 "" |-tokenptr 0x00000000 "" |-uclinebuf 0x00000000 |-uctokenptr 0x00000000 |-flags 2 |-errorNumber 0x27 |-ucmessage 0x03d4a988 |-messageArgs 0x02a1d8e8
We don't keep source lines around for reference by runtime errors. We never have. Only compile-time errors receive such easy luxury. /be
I'm going to replace the assertion I would've added for bug 312630 with a warning. There's just too many instances to justify crashing the program.
Keywords: assertion
Flags: testcase-
Assignee: general → nobody
Severity: normal → S3
Status: NEW → RESOLVED
Closed: 9 months ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.