[lttng-dev] bug?
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Mon Jan 28 11:37:12 EST 2013
* Yang Wang (yangw.wang5 at unb.ca) wrote:
> Hello,
>
> I am Yang Wang, I am currently using lttng to trace my JVM.
>
> During my using lttng in tracing JVM, I found three problems,
>
> 1) in lttng-ust-2.1.0/include/lttng/ust-tracepoint-event.h
>
> why using an assertion "assert(!ret);" (Line676)?
> not allowing double registering and init?
> if double registering or initialization (provider), why not allowed just returning silently instead
> of aborting"? How about comments assert(!ret); ==>//assert(!ret); what is the side-effects
> of doing this?
This would be caused by having two different versions of .so with
conflicting provider name. This is usually a linking issue, and/or due
to the fact that your system has old/deprecated provider .so still
reachable.
If your system has only one version of the provider available, you would
not trigger double registering.
So I don't see how silently allowing multiple non-matching providers
(and using just the first one that happened to be loaded) would help
diagnosing bogus setups.
>
> 2) The other problem is in ./userspace-rcu-0.7.5/urcu/list.h Line85
>
> I have to add a guard "if" statement as the assertion in my program fails otherwise
>
> static inline void
> __cds_list_del (struct cds_list_head *prev, struct cds_list_head *next)
> {
> if (prev != NULL && next != NULL) {
> //assert(prev != NULL && next != NULL);
> next->prev = prev;
> prev->next = next;
> }
It might be caused by e.g. double registration issues I'm talking about,
now that you removed the assert in __lttng_events_init__.
You should verify which provider .so are reachable, and make sure you
don't try to load two different providers with the same name.
>
> 3) Now my instrumented prog is ready to run. Here is my commands:
> lttng create
> lttng enable-event -u -a
> lttng start
> ./prog
>
> The (lttng) instrumented prog is stuck there without any outputs
> related to lttng tracing, how can I know what happen inside.
> In other words, does lttng have any mechanism to trace itself?
Start with LTTNG_UST_DEBUG=1 env. var. set (see man 3 lttng-ust)
gdb is usually pretty good at letting us know the culprit of such a
hang. Recommendation: compile your program with CFLAGS="-O0 -g", and use
"thread apply all bt full" to see the stack of each thread.
Best regards,
Mathieu
>
> Thanks
>
> Yang
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list