如何在chrome的V8 x64.release版本上获取作业和望远镜命令?(当前上下文中没有符号“_v8_internal_Print_Object”)

olqngx59  于 2022-12-06  发布在  Go
关注(0)|答案(1)|浏览(147)

我试图让chrome的V8(d8)x64.release版本使用GDB中的V8支持工具,特别是jobtelescope命令(主要是前者)。
我的x64.debug版本已经实现了这个命令并且可以工作,但是即使以类似的方式构建了x64.release版本,我仍然不能让这些命令在x64.release版本中工作。

gef➤  job 0xd98082f7b51
No symbol "_v8_internal_Print_Object" in current context.

我在args.gn构建ninja -C之前和之后都设置了www.example.com,以便在我的args.gn中包含v8_enable_object_print = true

is_debug = false
target_cpu = "x64"
use_goma = false
v8_enable_object_print = true
v8_enable_disassembler = true

我也有我的~/.gdbinit包含:

source ~/Desktop/tools/v8/tools/gdbinit
source ~/Desktop/tools/v8/tools/gdb-v8-support.py

请参见:https://chromium.googlesource.com/v8/v8/+/refs/heads/main/tools/gdbinit(关于我试图构建V8的支持工具)。
如何使/v8/out.gn/x64.release/d8job命令兼容运行?
我错过了什么吗?如果是这样,你的帮助将是非常有帮助的。

EDIT或者,如何禁用所有x64.debug V8 DCHECKS?

谢谢大家,感谢你们在这里的时间。

jgwigjjp

jgwigjjp1#

如何使/v8/out.gn/x64.release/d8job命令兼容运行?
我不确定。试着把symbol_level = 1(甚至symbol_level = 2)加到你的args.gn中。这肯定对堆栈跟踪有帮助,也可能是让GDB通过名字找到_v8_internal_Print_Object函数的原因。
或者,我如何禁用所有x64.debug V8 DCHECKS?
没有禁用它们的标志,但是你可以编辑源代码使它们不做任何事情。参见src/base/logging.h

相关问题