我正在尝试使用Erlang和dtrace,并且想知道是否可以获取两个Erlang进程之间交换的消息内容。我尤其对message-send
和message-receive
探针感兴趣。
我同时查看了erlang_dtrace.d和messages.d,看是否可行,但是我没有取得任何进展。
有没有一种方法可以实现这一目标。如果没有,还有其他选择吗?
此处在第242行使用了消息接收探针:
(请注意,只有当探针本身已启用,这由前面的宏确定227。)
有趣的是,该消息本身并未公开,这就是为什么您无法对其进行跟踪的原因。但是,我想对VM进行补丁以实现您想要的操作是可行的。您需要将消息作为字符串呈现到缓冲区中,并公开该缓冲区的地址。该习语的现有示例是