如何调试javascript在嵌入式V8
How to debug javascript in embedded V8?
我正在尝试学习如何在V8中使用调试对象来调试嵌入式javascript c++应用程序中的javascript。
我已经呼叫了v8::Debug::SetDebugEventListener
并设置了回拨。然后我调用v8::Debug::GetDebugContext
以获得调试上下文,然后运行如下命令:Debug.scripts()
如果我从c++输出调用的结果,我得到:
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}]
我实际上想做的是在脚本中为给定的行号设置一个断点,但甚至不能使最基本的东西工作。
我得到调试事件监听器的回调,但是回调输入参数(非用户提供的)数据对我来说也没有任何意义。
{script_: {context_: {data_: undefined, handle_: 0, type_: "context"}, handle_: 1, script_: {}, type_: "script"}, type_: 4}
{break_id: 2, selected_frame: 0}
谢谢。
(注意:这可能是也可能不是正确的方式来做事情,但它在一些简单的情况下为我工作)
v8::DebugEvent debug_event_type = event_details.GetEvent();
然后打开结果:
if (debug_event_type == v8::DebugEvent::Break) {
这里是一个非常简单的断点被击中的传入数据:
/* GetEventData() when a breakpoint is hit returns:
* {
* break_points_hit_: [{active_: true, actual_location: {column: 4, line: 13, script_id: 55}, condition_: null,
* script_break_point_: {
* active_: true,
* break_points_: [],
* column_: undefined,
* condition_: undefined,
* groupId_: undefined,
* line_: 13,
* number_: 1, <== breakpoint number - v8-assigned
* position_alignment_: 0,
* script_id_: 55, <== script id passed in from v8::ScriptOrigin when compiled
* type_: 0
* },
* source_position_: 175}], frame_: {break_id_: 8, details_: {break_id_: 8, details_: [392424216, {}, function a(){
println("Beginning of a()");
let some_var = 5;
some_var += 5;
b(some_var);
println("End of a()");
}, {sourceColumnStart_: [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 4, undefined, undefined, undefined, undefined, undefined, undefined, undefined]}, 0, 1, 175, false, false, 0, "some_var", 5]}, index_: 0, type_: "frame"}}
shameless self promotion
:您可以在我的v8集成简化库v8toolkit中看到我在调试v8方面取得的进展:https://github.com/xaxxon/v8toolkit/blob/master/src/debugger.cpp
相关文章:
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- Javascript嵌入式图像资源
- javascript从任何嵌入式flash视频中发现.flvurl
- 嵌入式设备-Javascript调试
- 如何使用javascript在嵌入式youtube视频上创建可点击的时间戳链接
- 用JavaScript编写嵌入式ruby
- JavaScript:检测移动嵌入式浏览器(强制门户)
- 从php中的mysql中复制带有嵌入式下拉列表的html表单javascript
- 嵌入式节点/javascript沙箱
- 在C++应用程序中编译嵌入式spidermonkey javascript引擎
- 使用chrome开发工具在html页面中编辑嵌入式Javascript
- 如何使用javascript将xsl样式应用于html中的嵌入式xml
- 尝试使用嵌入式javascript时找不到模板
- 在嵌入式PHP数组中使用JavaScript变量
- 访问嵌入式ruby中的javascript变量
- 使用Jasmine测试嵌入式javascript代码
- VS 2013 嵌入式对象中JavaScript的Web断点
- HTML 嵌入式 JavaScript 中不同上下文中的函数
- Web开发:如何访问从嵌入式C代码到javascript的变量
- javascript嵌入式视频如何知道用户何时观看