[dtrace-discuss] tracing C++ code with args

Sanjeev Bagewadi
Wed, 23 May 2007 10:38:31 -0000

Matthieu,

Matthieu Chase Heimer wrote:
> I''m trying to trace Mozilla which is written in C++. I''d
like to see what server URL pages are being loaded from. A problem seems to be
that Mozilla caches content and lookups so the requests don''t always
get down to C calls because of the cache. So I must trace the C++ code.
>
> The C++ method I want is
> nsHttpChannel::Init(nsIURI *uri, PRUint8 caps, nsIProxyInfo *proxyInfo)
> which is mangled into
> __1cNnsHttpChannelEInit6MpnGnsIURI_CpnMnsIProxyInfo__I_
>
> I can see the method firing but how do I use arg0? Can I in any way?
> Relevant header is at /usr/sfw/include/mozilla/nsIURI.h
>
arg0 would be the pointer to the object itself (ie. nsHttpChannel). So,
you should be
able to print various elements of the object. The crudest way would be
to access the
members by adding the offset to arg0.

Hope that helps.

Regards,
Sanjeev.
> --
> This message posted from opensolaris.org
> _______________________________________________
> dtrace-discuss mailing list
> dtrace-discuss at opensolaris.org
>