我想用dbg:tpl
跟踪erlang模块中的所有函数,但其中一个内部函数占用了跟踪文件的95%。然后我想只排除那个单一的功能,发现它并不像我想象的那么容易。
我知道在跟踪时,参数有很好的模式匹配可能性。
是否有类似的可能性为函数应用模式匹配?
eg.: {'=/=', '$2', function_name}
我也愿意接受开箱即用的解决方案!
谢谢!
答案 0 :(得分:5)
它可以作为一个具有列表理解的语句来实现:
[dbg:tpl(Mod, F, []) || {F, _Ar} <- Mod:module_info(functions), not lists:member(F, DontTrace)].
其中Mod
是您要跟踪的模块,DontTrace
是不应跟踪的函数名称列表。
答案 1 :(得分:1)
dbg:tpl(mod,[]).
dbg:ctpl(mod,notthisfunction).
没有测试过这个,但不应该这样做吗?不知道如何在一行中做到这一点。