erlang方便的打印调试信息
目前调试一个模块时比较麻烦,需要重新编译成调试版本,即增加DEBUG宏或debug_info等信息重新编译。
?
想要达到这种效果:想调试某个模块时直接调用test:debug()自动转换成调试模式,这样方便一点。
即效果如下:
?
-module(test).-compile(export_all).-ifdef(DEBUG).-define(LOG(Format), io:format(Format)).-define(LOG(Format, Data), io:format(Format, Data)).-else.-define(LOG(Format), ok).-define(LOG(Format, Data), ok).-endif.test(N) when is_integer(N) -> R = N + N, ?LOG("test(~p) = ~p~n", [N, R]), R.debug() -> debug(true).debug(true) -> c:c(?MODULE, [{d, 'DEBUG'}]);debug(false) -> c:c(?MODULE, []).