Wie bekomme ich den vollständigen Backtrace in SpiderMonkey (JSAPI) von meiner reportError-Funktion?

9

Ich habe JavaScript mit spidermonkey in meine App eingebettet und ich habe eine Funktion namens reportError , die einen JSErrorReport erhält .

Es scheint einfach zu sein, die aktuelle Zeile des Fehlers zu erfassen, aber ist es möglich, dass der gesamte Aufrufpfad eine vollständige Rückverfolgung anzeigt?

    
Chris Farmiloe 23.01.2009, 14:18
quelle

2 Antworten

1

Es ist nicht durch JSErrorReport machbar. Stattdessen müssen Sie sich den Debugger APIS ansehen. Suchen Sie den Header jsdbgapi.h. Es hat eine Liste von Hook-Funktionen, die aufgerufen werden, wenn Sie mit aktiviertem Debug (JS_SetDebugMode (cx, true)) arbeiten. Innerhalb dieser Hook-Funktionen könnten Sie einfach js_DumpBacktrace aufrufen, um den vollständigen Stack zu erhalten. Beachten Sie, dass js_DumpBacktrace nicht funktioniert, wenn Sie das Debuggen nicht zuerst aktivieren. Im Debug-Modus können Sie viel mehr tun als nur den Stapel zu drucken. Es ist tatsächlich möglich, den Funktionskontext und all seine Argumente und lokalen Variablen zu erhalten.

    
hohohmm 03.03.2014 11:17
quelle
0

Vielleicht nicht die beste Antwort, aber die Implementierung von xpc_printJSStack könnte für Sie hilfreich sein: Ссылка

    
Jonathan Protzenko 06.06.2012 14:01
quelle

Tags und Links