Замена версии Chrome V8 на отладочную сборку - PullRequest
0 голосов
/ 27 апреля 2018

Хотелось бы увидеть сборку и байт-код, сгенерированный v8, когда он встроен в chrome. В автономной версии d8 отсутствует поддержка DOM, поэтому в данном случае этого недостаточно.

Запуск './chrome --js-flags = "- help"' показывает, что опция «--print-bytecode» поддерживается в этой версии v8, а «--print-code» - нет. Точнее, я бы хотел запустить Chrome так:

'. / Chrome -js-flags = "- print-code"'

Как я могу заменить версию v8 в google-chrome отладочной версией, которая поддерживает "--print-code"? Я использую 64-разрядную ОС Linux.

Спасибо.

1 Ответ

0 голосов
/ 27 апреля 2018

Сборки Google Chrome связаны статически, что означает, что вы не можете легко заменить V8 или любой другой компонент.

Один из вариантов - собрать Chromium с нуля (это займет несколько часов). Когда вы сделаете это, просто добавьте v8_enable_disassembler = true к вашим аргументам GN, чтобы включить поддержку дизассемблера в V8 (которая включает поддержку --print-code). См. Инструкции на https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md.

Другим вариантом является загрузка отладочной сборки Chromium (которая по умолчанию поддерживает дизассемблер) из инфраструктуры непрерывной интеграции. Официально это не поддерживается, но возможно: перейдите на https://ci.chromium.org/p/chromium/g/main/console,, нажмите на последнее зеленое поле в столбце chromium.linux> debug> builder> 64, прокрутите вниз до шага "сборки пакета" и нажмите " Скачать "ссылка.

Предупреждение : Общее в обоих подходах состоит в том, что полученные сборки могут быть очень ошибочными, они не обновляются автоматически, и песочница, вероятно, не работает из коробки. Эти сборки следует использовать только для целевого тестирования, а не для обычного просмотра.

...