我正在使用 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/