smart_tracer v0.2.1 SmartTracer View Source
A simple wrapper for recon_trace.
Usage
When connected to a live remote console, issue the trace/2
passing the function reference and rate limit.
Tracing a global function
iex> SmartTracer.trace(&FakeModule.hello/1, 5)
1
iex> FakeModule.hello("Vince")
Elixir.SmartTracer.Support.FakeModule.hello/1 is being called with:
["Vince"]
Tracing a local function
iex> SmartTracer.trace(&FakeModule.get_name/1, 5, scope: :local)
1
iex> FakeModule.hello("Vince")
Elixir.SmartTracer.Support.FakeModule.get_name/1 is being called with:
["Vince"]
Tracing a function and getting it's return value (possible also for local tracing)
iex> SmartTracer.trace(&FakeModulne.hello/1, 5, return: true)
1
iex> FakeModule.hello("Vince")
Elixir.SmartTracer.Support.FakeModule.hello/1 is being called with:
["Vince"]
Elixir.SmartTracer.Support.FakeModule.hello/1 returns:
"Hello, my name is NAME-Vince"
Tracing a function and recording calls and returns
iex> SmartTracer.trace(&FakeModulne.hello/1, 5, return: true, record: true)
1
To playback all the recordings, use playback/0
iex> SmartTracer.playback()
[%SmartTracer.Utils.Recorder.Call{
args: ["Vince"],
arity: 1,
function: :hello,
module: SmartTracer.Support.FakeModule,
type: :call
},
%SmartTracer.Utils.Recorder.Return{
arity: 1,
function: :hello,
module: SmartTracer.Support.FakeModule,
return_value: "Hello, my name is NAME-Vince",
type: :return
}]
Link to this section Summary
Functions
Returns a list of all the traces.
Stops tracing any function calls.
Traces calls for the specified function.
Link to this section Functions
Returns a list of all the traces.
Stops tracing any function calls.
Traces calls for the specified function.
Options
:return
- display return value of the specified function, defaults tofalse
:scope
- determines wether to trace local calls as well:global
(default) - trace only public functions:local
- trace private function calls as well