-module(tpTracerShell).
|
|
|
|
-export([
|
|
start_link/1
|
|
, init/1
|
|
, loop/1
|
|
]).
|
|
|
|
-export([
|
|
system_continue/3
|
|
, system_terminate/4
|
|
, system_code_change/4
|
|
]).
|
|
|
|
start_link(_TracerOpts) ->
|
|
Pid = proc_lib:spawn_link(?MODULE, init, [self()]),
|
|
{ok, Pid}.
|
|
|
|
init(Parent) ->
|
|
process_flag(message_queue_data, off_heap),
|
|
process_flag(trap_exit, true),
|
|
?MODULE:loop(Parent).
|
|
|
|
loop(Parent) ->
|
|
receive
|
|
{system, From, Request} ->
|
|
sys:handle_system_msg(Request, From, Parent, ?MODULE, [], Parent);
|
|
RMsg ->
|
|
io:format("~10000p\n", [RMsg]),
|
|
%erlang:display(RMsg),
|
|
?MODULE:loop(Parent)
|
|
end.
|
|
|
|
system_continue(_, _, Parent) ->
|
|
?MODULE:loop(Parent).
|
|
|
|
-spec system_terminate(any(), _, _, _) -> no_return().
|
|
system_terminate(Reason, _, _, _) ->
|
|
exit(Reason).
|
|
|
|
system_code_change(Misc, _, _, _) ->
|
|
{ok, Misc}.
|