Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
* [lttng-dev] bug?
@ 2013-01-23 20:09 Yang Wang
  2013-01-28 16:37 ` Mathieu Desnoyers
  0 siblings, 1 reply; 2+ messages in thread
From: Yang Wang @ 2013-01-23 20:09 UTC (permalink / raw)


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?

 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;
  }

 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?

   Thanks

   Yang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20130123/334ff07a/attachment.html>


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [lttng-dev] bug?
  2013-01-23 20:09 [lttng-dev] bug? Yang Wang
@ 2013-01-28 16:37 ` Mathieu Desnoyers
  0 siblings, 0 replies; 2+ messages in thread
From: Mathieu Desnoyers @ 2013-01-28 16:37 UTC (permalink / raw)


* 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



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-01-28 16:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-23 20:09 [lttng-dev] bug? Yang Wang
2013-01-28 16:37 ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox