I was searching for a tool to trace the function flow to help me understand the code. I came across the article "visualize function calls with graphviz" by Tim Jones. Visualize function calls with Graphviz
I was able to obtain the flow diagram for simple programs and also for the example program mentioned in the article.
But failed when tried to use for large project. I included instrument.c file in the Makefile under the list of source files to be compiled. instrument.o file was generated but trace.txt was not generated. Also included -g and -finstrument-functions..
CFLAGS = -g -finstrument-functions
Can anyone guide me, if you have used that tool...
I have a SLES 11(SP1) server that I am trying to install graphviz 2.28 on. Unfortunately that is not a comman combination, so I can't just use an RPM to install it, I have to build it from source. When doing so, when I configure it, I can't get it to recognize that pangocairo is actually... (4 Replies)
Hi
I am hoping someone can explain this to me as I am struggling to understand it.
I had a problem today with needing to trace a ksh script that was dotting in a function that was writing to stdout. The problem was it was being run in a sub shell and the output was being parsed by the... (1 Reply)
Apart from writing debug and statements in constructors is there any way by which we can trace the function call stack at any depth?
The issue that we always face is that when program crashes (Web Server running on Linux) we have no idea where it crashes and we have to do the hard way of... (1 Reply)
hello every one
can any one help me out i just want to trace what ever i am doing in linux 8.0 in the text mode to be saved in a text file so that at the end i can see my work what i have do. its just like oracle spool so you can see your work at the end .
for example what ever command u gave... (2 Replies)
hello every one
can any one help me out i just want to trace what ever i am doing in linux 8.0 in the text mode to be saved in a text file so that at the end i can see my work what i have do. its just like oracle spool so you can see your work at the end .
for example what ever command u gave... (1 Reply)
hi all,
iam trying to install graphviz software on my linux box(suse linux).
i downloaded rpm graphviz-2.9.20060521.0440-1.fc1.i386.rpm
i'm using rpm --install graphviz-2.9.20060521.0440-1.fc1.i386.rpm but getting the errors
warning: user ellson does not exist - using root
warning: group... (1 Reply)
et_selector(3erl) Erlang Module Definition et_selector(3erl)NAME
et_selector - Define event transforms and trace patterns
DESCRIPTION EXPORTS
make_pattern(RawPattern) -> TracePattern
Types RawPattern = detail_level()
TracePattern = erlang_trace_pattern_match_spec()
detail_level() = min | max | integer(X) when X >= 0, X =< 100
Makes a trace pattern suitable to feed change_pattern/1
Min detail level deactivates tracing of calls to et:trace_me/4,5
Max detail level activates tracing of all calls to et:trace_me/4,5
integer(X) detail level activates tracing of all calls to et:trace_me/4,5 whose detail level argument is lesser than X.
See also erlang:trace_pattern/2 for more info about its match_spec()
change_pattern(Pattern) -> ok
Types Pattern = detail_level() | empty_match_spec() | erlang_trace_pattern_match_spec()
detail_level() = min | max | integer(X) when X >= 0, X =< 100
empty_match_spec() = []
Activates/deactivates tracing by changing the current trace pattern.
min detail level deactivates tracing of calls to et:trace_me/4,5
max detail level activates tracing of all calls to et:trace_me/4,5
integer(X) detail level activates tracing of all calls to et:trace_me/4,5 whose detail level argument is lesser than X .
An empty match spec deactivates tracing of calls to et:trace_me/4,5
Other match specs activates tracing of calls to et:trace_me/4,5 accordingly with erlang:trace_pattern/2 .
parse_event(Mod, ValidTraceData) -> false | true | {true, Event}
Types Mod = module_name() | undefined <v>module_name() = atom() <v>ValidTraceData = erlang_trace_data() | record(event)
erlang_trace_data() = {trace, Pid, Label, Info} | {trace, Pid, Label, Info, Extra} | {trace_ts, Pid, Label, Info, ReportedTS}
| {trace_ts, Pid, Label, Info, Extra, ReportedTS} | {seq_trace, Label, Info} | {seq_trace, Label, Info, ReportedTS} | {drop,
NumberOfDroppedItems}
Transforms trace data and makes an event record out of it.
See erlang:trace/3 for more info about the semantics of the trace data.
An event record consists of the following fields:
detail_level :
Noise has a high level as opposed to essentials.
trace_ts :
Time when the trace was generated. Same as event_ts if omitted in trace data.
event_ts :
Time when the event record was created.
from :
From actor, such as sender of a message.
to :
To actor, such as receiver of message.
label :
Label intended to provide a brief event summary.
contents :
All nitty gritty details of the event.
See et:trace_me/4 and et:trace_me/5 for details.
Returns:
{true, Event} :
where Event is an #event{} record representing the trace data
true :
means that the trace data already is an event record and that it is valid as it is. No transformation is needed.
false :
means that the trace data is uninteresting and should be dropped
Ericsson AB et 1.4.2 et_selector(3erl)