----- Original Message -----

> From: "zhenyu.ren" <[email protected]>
> To: "Mathieu Desnoyers" <[email protected]>, "David Goulet"
> <[email protected]>
> Cc: "lttng-dev" <[email protected]>
> Sent: Tuesday, October 22, 2013 4:49:19 AM
> Subject: 答复: 答复: lttng list -u coredump

> > Therefore, the &(pos)->member != NULL check will break out of the loop
> > immediately,

> As you pointed out,pos is a very large pointer value(i.e
> 0xffffffffffffff88,say an invalid pointer) . Before check itself,
> &(pos)->member has been deferenced anyway.

Can you point out what in the C99 specification makes you believe that the 
pointer is actually dereferenced in the expression "&(pos)->member" ? 

AFAIK, this only evaluates to the address of field "member" within "pos". The 
compiler should not dereference the pointer "pos" at all. 

I'm concerned that focusing on the hash table iteration might be leading us in 
the wrong direction. What we see in the information you provided is a an error 
detected by glibc "free()", which seems much more likely to point to the 
culprit. However, we'd need more information about the symbols in this 
backtrace. Probably that getting it with a lttng-sessiond compiled with "-g 
-O0" (no optimisations, with debug symbols) would help us make more sense out 
of the free() error output. 

Thanks, 

Mathieu 

> > Please provide details about the lttng-tools, lttng-ust, lttng-modules,
> > userspace RCU versions you are using

> lttng-tools,lttng-ust and lttng-modules are 2.3.0,userspace RCU is 0.8.0

> thanks
> zhenyu.ren

-- 
Mathieu Desnoyers 
EfficiOS Inc. 
http://www.efficios.com 
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to