- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个相当特殊的调试问题,因为我的 Node 应用程序本身就是一个 Node 调试器(应用程序的一个部分将提供用于调试另一部分的调试接口(interface))。
我熟悉记录在以下位置的 V8 调试协议(protocol):
https://code.google.com/p/v8/wiki/DebuggerProtocol
以及使用它的多种工具(包括 Node 中的内部调试器、 Node 检查器等)。如果我必须通过网络连接与该 API 进行通信(就像所有现有工具似乎所做的那样),我可以这样做,但出于某些原因我不愿意这样做。我已经在进程中了,希望避免在所有情况下打开调试端口和网络开销(这是我的生产环境的一部分),并且我希望从调试 API 中获取 Javascript 对象,而不是您通过 JSON API 获得的 JSON 化版本(缺乏一些保真度)。
V8 调试器文档说:“有两个 API 用于此操作:使用 JavaScript 对象的基于函数的 API 和使用基于 JSON 的协议(protocol)的基于消息的 API。基于函数的 API 可以由进程内使用调试器代理,而基于消息的 API 也可以在进程外使用。”
使用 JavaScript 对象的基于函数的 API 听起来正是我所需要的,但我在 V8 文档中看不到任何有关此 API 或如何使用它的内容。我也看不到如何从 Node.js 访问此 API(或一般的 V8)。那么这可能吗?如果可能的话,如何实现?
最佳答案
它永远不会失败。研究一整天。发布到 SO。 10 分钟后找到答案。
使用以下参数启动 Node.js:--expose-debug-as=v8debug
毫不奇怪,这将 V8 调试状态公开为您可以引用的模块:
var debug = v8debug.Debug;
var scripts = debug.scripts();
仍在整理一堆 JS 入口点以及它们如何与已发布的 API 保持一致,但我认为我遇到的主要问题或多或少已经解决了。
关于node.js - 如何从 Node.js 应用程序与基于函数的 V8 调试 API 进行对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22401679/
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!