[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Announce: A useful d-bus analyzer
From:       Andreas Hartmetz <ahartmetz () gmail ! com>
Date:       2014-01-24 20:40:30
Message-ID: 3832466.op1nV2B1aZ () rechenplan
[Download RAW message or body]

On Friday 24 January 2014 14:21:15 =C0lex Fiestas wrote:
> On Tuesday 14 January 2014 19:54:14 Andreas Hartmetz wrote:
> > Hello,
> > =

> > I've worked on and off on an implementation of the d-bus protocol
> > which, of course, needs a proof of concept. That proof of concept is
> > a d-bus analyzer, probably the best d-bus analyzer around if your use
> > case isn't exactly what Bustle covers - in that case, Bustle is the
> > best.
> > The analyzer can:
> > - filter messages on various header fields
> > - group calls with returns
> > - displays call/return latency as observed from the d-bus daemon
> > - show a list of currently unanswered calls (helps find those that
> > =

> >   take really long or time out)
> > =

> > - pause, continue and reset capturing
> > - save and load captures
> > - display the full types and contents of messages in a nice format
> > - associate calls with returns in order to obtain nicer sender and
> > =

> >   receiver addresses - in the screenshot, the address parts in
> >   parentheses are obtained that way
> > =

> > Screenshot: http://i.imgur.com/CK1ejcb.png
> > =

> > With the library part, I tried to make it nice to use and fast because
> > those features must be there from the beginning if they are ever going
> > to be there at all. What it is not is complete (not even close) or even
> > memory leak proof under some circumstances. The parts that are not
> > core marshalling are also not as optimized as they could be.
> > =

> > The thing is called Dferry and can be found under Playground/SDK
> > on projects.kde.org or just kde:dferry in git if you have that git
> > shortcut set up.
> > After building and installing, the analyzer is called dfer-analyzer.
> > =

> > Cheers,
> > Andreas
> =

> This looks awesome !
> =

> I remember a conversation between you and Thiago to make use of your
> marshaller instead of libdbus, is that still in place?
> =

Well, kdbus has switched to GVariant marshalling in the meantime.
I heard that about a week ago and I'm not particularly happy about it.
The serialization format is incompatible (although somewhat similar)
and there are even some semantic differences like an option type and a
fixed length array type that don't exist in libdbus. That is obviously
a problem if you try to bridge the formats both ways.
I guess I could implement the GVariant format: it's not more difficult
than the old format, most of the unit tests will be applicable, and I
know how to handle the tricky cases that can occur in that kind of
serialization format.
Also the GVariant code is not crap unlike libdbus, so it can serve as
an example.

For the benefit of any semi-involved onlookers let me state very
clearly here:
- "kdbus" is a multicast local socket type in the Linux kernel.
  It knows almost nothing about d-bus. It's just a few hundred lines.
- the user-space part that implements the d-bus protocol lives in the
  systemd repository and is called libystemd (no kidding). It's about
  23k lines. That is what people mean most of the time when they say
  "kdbus". I'm using it like that as well because it has no proper name
  otherwise.

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic