Имя функции в трассировке стека SpiderMonkey

Я использую движок SpiderMonkey 1.8, и я недоволен тем, как он создает трассировку стека. Иногда мы получаем автоматически сгенерированные имена функций в JavaScript-файлах с сервера, которые на самом деле не читаются. На стороне клиента у меня есть доступ к другим функциям, которые позволяют мне сделать их более понятными для людей.

Кто-нибудь знает, как SpiderMonkey строит одну строку трассировки стека? Могу ли я как-то повлиять на это?

  • Свойство name функции доступно только для чтения.
  • WebKit displayName не кажется, не работает в SpiderMonkey (пока)

EDIT: я просмотрел исходный код SpiderMonkey и ого, я не знаю, может быть, это только я, но этот код C++ близок к нечитаемому. Что ж, у меня не так много опыта работы с C++, но чертовски сложно найти путь через все эти файлы. Я не нашел способа...

Так что, пожалуйста, решать вам :).


person sjngm    schedule 28.09.2011    source источник
comment
@Incognito: я видел этот файл, но не могу найти ничего полезного. Например, есть getFunctionPrivate(), который вызывает getPrivate(), которого я не могу найти.   -  person sjngm    schedule 29.09.2011
comment
Я только что зарегистрировал bugzilla.mozilla.org/show_bug.cgi?id=706324.   -  person cdleary    schedule 30.11.2011
comment
@cdleary: Спасибо! Пожалуйста, держите нас в курсе, если что-то происходит. Я буду проверять время от времени... Но я предполагаю, что это то, чего не будет до версии 1.9.   -  person sjngm    schedule 30.11.2011
comment
@sjngm: я бы порекомендовал копировать эту ошибку, чтобы получать своевременные обновления, не рассчитывайте на меня. :-) Я также специально спросил, есть ли в настоящее время что-то для этого, о чем я не знаю.   -  person cdleary    schedule 30.11.2011
comment
Я проверил проблему на сайте Mozilla, и они закрыли ее. Так что этого не произойдет. Ой. :(   -  person sjngm    schedule 27.12.2011


Ответы (1)


Если вы хотите взять трассировку стека и манипулировать ею, вы можете использовать информацию о стеке, чтобы получить проанализированную информацию о трассировке стека, а затем перестроить трассировку стека, как вы хотите его построить.

person B T    schedule 28.08.2014
comment
Спасибо за обновление, но в нашем проекте нельзя использовать внешние библиотеки. Из-за этого я не буду проводить тесты с нашим браузером. Но может кому еще пригодится. - person sjngm; 28.08.2014
comment
Это школьный проект или что? - person B T; 29.08.2014
comment
Школа как 20 лет назад ;) Нет, это браузер во встроенной среде с ограниченным объемом памяти, строгим контролем версий и всем остальным. - person sjngm; 30.08.2014