如何跟踪Erlang模块中的所有函数除外?

cdl*_*dlf 2 erlang trace pattern-matching

我想跟踪erlang模块中的所有函数dbg:tpl,但其中一个内部函数占用了跟踪文件的95%.然后我想只排除那个单一的功能,发现它并不像我想象的那么容易.

我知道在跟踪时,参数有很好的模式匹配可能性.

  • 是否有类似的可能性为函数应用模式匹配?

    eg.: {'=/=', '$2', function_name}

我也对开箱即用的解决方案持开放态度!

谢谢!

Ada*_*erg 5

它可以作为一个具有列表理解的语句来实现:

[dbg:tpl(Mod, F, []) || {F, _Ar} <- Mod:module_info(functions), not lists:member(F, DontTrace)].
Run Code Online (Sandbox Code Playgroud)

Mod您要跟踪的模块在哪里,并且DontTrace是不应跟踪的函数名称列表.