【问题标题】:Debugging PLV8 in PostgreSQL在 PostgreSQL 中调试 PLV8
【发布时间】:2016-08-05 07:19:25
【问题描述】:

前段时间,我在 PostgreSQL 函数和触发器中请求disadvantages of using PLV8。与此同时,我使用 plpgSQL 的混合 szenario 并喜欢它。但是 - 如前所述 - PLV8 的调试选项较少。到目前为止,我了解 plugin_debugger 仅适用于 plpgSQL。外面有没有人找到一种很好的方法来以另一种方式进行 PLV8 调试,然后使用大量烦人的plv8.elog(NOTICE, 'this happens with my variable')?也许任何第三方工具或秘密插件?

【问题讨论】:

    标签: postgresql debugging plugins plpgsql plv8


    【解决方案1】:

    pl/v8 不再支持远程调试。

    它在 pl/v8 中可用,直到版本 1.4.x(请参阅#131)。旧版本中值得注意的缺失功能包括 ES6。

    解决方法

    如果您需要使用 pl/v8 1.4.x 调试 ES6/7 代码,您可以使用 Traceur 对其进行转译。


    来自 1.4.x 的 documentation

    PL/v8 支持 v8 远程调试器。您需要在编译时启用它以通过ENABLE_DEBUGGER_SUPPORT 进行制作。 make static 会自动打开它。如果启用,并且一旦 PL/v8 模块被加载(并且执行引擎被初始化,PL/v8 接受远程调试器连接。如果您有来自 v8 包的 d8,请使用--remote-debug --debug-port=35432 运行以附加功能。如果您想更改远程调试器端口,有一个GUC plv8.debugger_port 设置端口号。您也可以尝试在函数中使用调试器语句设置断点。有关v8远程调试器的更多详细信息,请参阅v8文档。

    如果您不熟悉调试 JavaScript(或 v8),可能会有点麻烦。

    如果您对调试协议的低级功能感兴趣,check this out

    单步执行代码可能是一些繁琐的工作,但here is a starting point 了解如何完成。

    如果您正在寻找完整的现成解决方案或分步教程,我不确定是否有特定于 PL/v8 的解决方案。

    我没有亲自尝试过任何这些来调试 PL/v8,但是,有可能有人可以连接并且或多或少按预期工作:https://developer.chrome.com/devtools/docs/debugging-clients

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 2012-09-17
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      相关资源
      最近更新 更多