我正在使用 spidermonkey 在我的应用程序中嵌入 javascript,并且我有一个名为reportError
接收JSErrorReport的函数。
获取错误的当前行似乎很简单,但是是否有可能获取整个调用路径以显示完整的回溯?
我正在使用 spidermonkey 在我的应用程序中嵌入 javascript,并且我有一个名为reportError
接收JSErrorReport的函数。
获取错误的当前行似乎很简单,但是是否有可能获取整个调用路径以显示完整的回溯?
通过 JSErrorReport 是不可行的。相反,您必须查看调试器 APIS。找到头文件 jsdbgapi.h。如果您在启用调试的情况下运行 (JS_SetDebugMode(cx, true)),它将有一个挂钩函数列表。在这些钩子函数中,您可以简单地调用 js_DumpBacktrace 来获取完整堆栈。请注意,如果您不先启用调试,则 js_DumpBacktrace 将不起作用。在调试模式下,您可以做的不仅仅是打印堆栈。实际上可以获得函数上下文及其所有参数和本地变量。
可能不是最好的答案,但xpc_printJSStack
可能对您有所帮助:http: //mxr.mozilla.org/mozilla-central/source/js/xpconnect/src/XPCDebug.cpp#255