javascript - 远程调试 V8 引擎(不是 Node.js,而是 ClearScript)

标签 javascript v8 devtools

我正在使用 Microsoft.ClearScript.V8在 C# 控制台应用程序中嵌入一个简单的 V8 引擎实例。我想远程调试 Google Chrome 开发工具中发生的事情,但我失败了。

搜索 interwebz,我能找到的唯一解决方案是安装 Eclipse 并从那里调试。然而,这是不希望的。我想了解后台发生的情况并能够重现该功能。

我已经知道远程调试器通过 WebSockets 进行对话,但我不知道实现细节。你们可以在这里指出我正确的方向吗?

我的代码:

int debugPort = 8888;
var ctx = new V8ScriptEngine(V8ScriptEngineFlags.EnableDebugging, debugPort);
ctx.AllowReflection = true;

/* This is not required but allows me to console log things. */
ctx.AddHostType("Console", typeof(Console));

当我尝试使用 V8 检查器 ( https://chrome.google.com/webstore/detail/nodejs-v8-inspector/lfnddfpljnhbneopljflpombpnkfhggl ) 进行连接时,我收到以下错误:

无法启动调试器
JSON 中位于位置 0 的意外标记 T

这是完全有意义的,因为它需要一个 JSON 格式的字符串,因为 Node 以这种方式实现它。

当我打开 http://127.0.0.1:8888/在我的浏览器中,我收到以下输出:
Type: connect
V8-Version: 5.3.332.45
Protocol-Version: 1
Embedding-Host: V8Runtime
Content-Length: 0

如何从 Google Devtools 远程调试我的非 Node 应用程序?

最佳答案

您至少需要 ClearScript 5.5 .旧版本不支持 V8 Inspector 协议(protocol)。最新版本 (5.5.2) 与 chrome://inspect 一起使用并修复了一些错误。

关于javascript - 远程调试 V8 引擎(不是 Node.js,而是 ClearScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42424260/

相关文章:

javascript - 如何从上下文菜单(单击鼠标右键)打开模态框?

javascript - 如何在以下 JavaScript 中添加多条短信

javascript - 字符串切片的算法复杂度是多少? (实用,真实世界)

r - 使用重载运算符构建包

javascript - Firebase Cloud Firestore错误+Vue+Vuex(firebase.firestore.QuerySnapshot)

javascript - 将 Material-UI 数据网格 onSelectionChange 传递给 react 钩子(Hook)

v8 - 在 Windows 上构建 V8 不输出 v8_base.lib

javascript - 使用 V8 而不是 JavascriptCore 进行 React-Native

google-chrome - 在 Firefox/Chrome devtools 中有没有办法在连接后发送/编辑 websocket 消息

R 包构建未记录的代码对象