首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在实时应用程序上检查DETS?

如何在实时应用程序上检查DETS?
EN

Stack Overflow用户
提问于 2018-01-15 09:37:17
回答 1查看 453关注 0票数 2

我是Erlang的新手,但我想知道是否有可能以某种方式附加到工作应用程序中,并检查它正在使用的ETS或DETS。如果是,你愿意举一个小例子吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-17 02:42:04

如果您可以访问ETS表,您可以使用它来查看它。在erlang中,只需键入observer:start().来打开GUI。

要连接到正在运行的命名节点,可以使用Erlang中的节点选项。

启动命名节点

代码语言:javascript
运行
复制
$erl -name application@hostname

从另一台机器或终端启动新的erlang外壳。

代码语言:javascript
运行
复制
$erl -name temp@hostname

从临时的erlang中,按Ctrl+g连接到应用程序,然后按h?获取选项列表。选项r是连接到远程节点和c以连接到新作业。

代码语言:javascript
运行
复制
>r 'application@hostname'
>c

之后,您可以像在机器上那样调用任何命令,调用任何模块:函数,并访问ETS表。

如果您在同一台机器上没有其他任何东西,如果您在不同的机器上,您必须设置cookie以便它们匹配,否则您将无法连接。

断开连接时要小心,必须在退出之前切换到本地节点,或者关闭临时应用程序,不要关闭真正的应用程序。

Rebar3

现在很多人使用Rebar3来创建和运行Erlang项目,如果您不使用它,我强烈建议使用它。

使用Rebar3,可以使用start命令启动应用程序,并使用附加命令附加到正在运行的应用程序。您必须使用Rebar3发布使用这些命令。这里有更多的信息

样本:

代码语言:javascript
运行
复制
rel/my_app/bin/my_app start
rel/my_app/bin/my_app attach

然后,按照上面提到的方式访问ETS或使用erlang手册页中列出的任何ets命令。

使用ctrl+D进行分离。

混合并匹配,您可以使用常规的erl -name temp@hostname shell连接到使用rebar3启动的项目。只要cookies匹配,并且知道节点名称,就不必使用Rebar3来附加到正在运行的应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48260246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档