首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WinDbg在源码视图中调试V8?

如何使用WinDbg在源码视图中调试V8?
EN

Stack Overflow用户
提问于 2019-06-04 19:47:15
回答 1查看 468关注 0票数 2

我一直在学习更多关于V8内部机制的知识,我一直在努力建立一个调试环境来帮助我,但我对所有这些都是相对较新的,所以我不确定我做得是否正确。

我已经使用debug标志设置为true编译了V8,并运行了D8来测试构建。在将WinDbg附加到D8进程之后,我在Math.hypot (v8!Builtins_MathHypot)函数上设置了一个断点,以尝试查看它是如何工作的:

我的问题是:调用堆栈中大多数函数的源代码都是链接的,我可以通过浏览程序集或源代码来调试它们(您还可以在函数旁边的调用堆栈中看到源代码的路径)。但是对于v8!Builtins_*,没有显示源代码。我是不是做错了什么,还是故意的?有没有办法让源代码视图也适用于这些函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-04 20:41:30

这里是V8开发人员。有不同种类的内置:其中一些是手写汇编,或者是在编译时使用"CodeStubAssembler“基础设施生成的;另一些是用C++实现的。对于后者,您应该能够看到源代码。MathHypot就是其中之一,所以我不知道为什么它不能工作(我不使用WinDbg)。可能是因为函数条目是从宏生成的;请尝试将断点设置为一行实际的C++源代码,在本例中为builtins-math.cc:18。

对于JSEntry、JSEntryTrampoline和InterpreterEntryTrampoline,预计没有源码。

您可以在src/builtins/builtins-definitions.h中看到内置的列表,包括它们的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56443262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档