6
Q
默认进程标志
A
回答
1
这样做的一种方法是将Erlang跟踪功能与.erlang文件结合使用。
具体来说,您可以使用erlang:trace/3提供的低级跟踪功能,也可以利用dbg:tracer/2函数创建新的跟踪过程,每次收到跟踪消息时都会执行自定义处理函数。
要自动化一些事情,您可以在运行代码的目录或主目录中创建一个Erlang启动文件。 Erlang启动文件是一个特殊的文件,名为.erlang,每次启动运行系统时都会执行该文件。
类似下面应该做的工作:
% -*- Erlang -*-
erlang:display("This is automatically executed.").
dbg:tracer(process, {fun ({trace, Pid, spawn, Pid2, {M, F, Args}}, Data) ->
process_flag(Pid2, save_calls, Data),
Data;
(_Trace, Data) ->
Data
end, 100}).
dbg:p(new, [procs, sos]).
基本上,我创建一个新的跟踪过程,这将跟踪过程(第一个参数)。我指定了一个处理函数来执行和一些初始数据。在处理函数中,我为新生成的进程设置了save_calls
标志,而我忽略了所有其他跟踪消息。我将save_calls
'选项设置为100
,使用初始数据参数。在最后的调用中,我告诉dbg我只对新创建的进程感兴趣。我还设置了sos
(set_on_spawn
)选项以确保跟踪标志的继承。
最后,注意你如何需要使用process_flag
功能,这需要一个额外的参数(你想设置的标志的过程中Pid
)的变体。
相关问题
- 1. Golang标志包有默认标志吗?
- 2. 隐藏标志默认值
- 3. WordPress的默认标志
- 4. Typo3默认语言标签和标志
- 5. 铛 - 使用默认标志编译
- 6. GCC /铛默认的错误标志
- 7. Mongoose.js:属性默认值isModified标志
- 8. mySQL中的默认信用卡标志
- 9. Pymongo默认日志
- 10. Django设置默认日志
- 11. 更改默认的二进制标记
- 12. 进口android.R默认
- 13. 默认android.support.v7.app.ActionBar默认标题TextSize
- 14. MySQL - 默认保存二进制日志到表
- 15. php默认标题
- 16. file_get_contents默认标题
- 17. Android BroadcastReceiver:在默认进程或新的进程中运行它?
- 18. 如何获得从默认进程冻结进程ID
- 19. 存储过程默认参数标识
- 20. Windows应用程序的默认图标?
- 21. 如何更改默认程序图标?
- 22. 86在程序执行期间方向标志(DF)的默认状态
- 23. 是控制-d stdin的默认停止标志?在linux中C?
- 24. Python的Argparse“无线电”标志与默认?
- 25. CMake:取决于构建类型的默认标志
- 26. 惊天动地:有条件地覆盖标志默认值
- 27. 如何在gflags中设置标志文件的默认值?
- 28. 如何隐藏plone 4.3网站的默认标志
- 29. 在移动打印机上打印默认标志zonerich AB-320M
- 30. 如何设置 - 默认在git中设置标志?