0

我对 GDB 和 V8 JavaScript 引擎还很陌生。

编译 shell.cc(/v8/v8-trunk/samples/Shell.cc) 后,我尝试在 parser.cc(/v8/v8-trunk/src) 中设置断点(b Parser::Parser),然后是 GDB意外显示错误消息:找不到名为“Parser::Parser”的命名空间、类、结构或联合的成员。但是,可以在 parser.cc 中找到“Parser::Parser”方法的源代码。

有任何想法吗?谢谢。

(gdb) c
Continuing.
V8 version 3.13.1 [sample shell]
> 3+5;
8
> 
Program received signal SIGINT, Interrupt.
0x00752402 in __kernel_vsyscall ()
(gdb) b Parser::Parser
Can't find member of namespace, class, struct, or union named "Parser::Parser"
Hint: try 'Parser::Parser<TAB> or 'Parser::Parser<ESC-?>
(Note leading single quote.)
(gdb)
4

1 回答 1

1

您还需要指定命名空间。根据parser.ccParser::Parser位于v8::internal命名空间内。试试这个:

(gdb) b 'v8::internal::Parser::Parser'
于 2012-10-08T18:28:57.920 回答