pman_buf_utils.erl
来自「OTP是开放电信平台的简称」· ERL 代码 · 共 106 行
ERL
106 行
%% ``The contents of this file are subject to the Erlang Public License,%% Version 1.1, (the "License"); you may not use this file except in%% compliance with the License. You should have received a copy of the%% Erlang Public License along with this software. If not, it can be%% retrieved via the world wide web at http://www.erlang.org/.%% %% Software distributed under the License is distributed on an "AS IS"%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See%% the License for the specific language governing rights and limitations%% under the License.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %% $Id$%%-module(pman_buf_utils).%%-compile(export_all).-export([textformat/1, split/4]).%% ---------------------------------------------------------------%% Funtion which format the trace message%% ---------------------------------------------------------------textformat(died) -> "\n\nProcess died\n";textformat({died, Pid}) -> io_lib:format("~w Process died.~n",[Pid]);textformat({shell_died, Old, New}) -> io_lib:format("~w Shell Process died. Restarted as ~w~n~n",[Old,New]);textformat(to_buffer) -> "\nAppending trace log to Buffer\n\n";textformat(to_file) -> "\nAppending trace log to File\n\n";textformat(cut_buffer) -> "\nCUT BUFFER\n\n";textformat({trace, From, 'receive', Msg}) -> io_lib:format("~w: rec ~s~n", [From, tuple_space(Msg)]);textformat({trace, From, send, Msg, To}) -> io_lib:format("~w: ! To: ~w Msg: ~s~n", [From, To, tuple_space(Msg)]);textformat({trace, From, call, Func}) -> io_lib:format("~w: call ~s~n",[From, ffunc(Func)]);textformat({trace, From, spawn, Data}) -> io_lib:format("~w: spawn ~p~n", [From, Data]);textformat({trace, From, link, Data}) -> io_lib:format("~w: link ~p~n", [From, Data]);textformat({trace, From, unlink, Data}) -> io_lib:format("~w: U-lnk ~p~n", [From, Data]);textformat({trace, From, Op, Data}) -> io_lib:format("~w: ~w ~p~n", [From, Op, Data]);textformat({print, Format, Args}) -> io_lib:format(Format, Args);textformat(Other) -> io_lib:format("~p~n",[Other]). ffunc({M,F, Argl}) -> io_lib:format("~w:~w(~s)", [M, F, fargs(Argl)]);ffunc(X) -> tuple_space(X).fargs([]) -> [];fargs([A]) -> tuple_space(A); %% last argfargs([A|Args]) -> [tuple_space(A),", "|fargs(Args)].tuple_space(X) when is_tuple(X) -> print(size(X), X, "}");tuple_space(X) -> io_lib:format("~p",[X]).print(0 , _X, Buff) -> ["{"|Buff];print(1 , X, Buff) -> Str = tuple_space(element(1, X)), ["{",Str|Buff];print(Num, X, Buff) -> Str = tuple_space(element(Num, X)), print(Num-1, X, [", ",Str|Buff]).%% ----------------------------------------------------------------%% splits the list at element Size, returns Size, and the 2 lists%% If the list is not long enough, it returns {size(List),[],List}split([],_,Length,Buff) -> {Length,[],lists:reverse(Buff)};split(Rest,0,Length,Buff) -> {Length,Rest,lists:reverse(Buff)};split([L|List],Size,Length,Buff) -> split(List,Size-1,Length+1,[L|Buff]).
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?