Debugging agent library

Suchakra Sharma
Wed May 8 19:42:00 GMT 2013

Hi Yao,

> If the suggestions above don't work for you, you probably have to turn 
> on some debugging outputs.  You can start gdbserver with option 
> "--debug", and further, hack the variable "debug_agent" to 1 in 
> gdb/common/agent.c.

Thanks for your detailed reply. We were able to rectify the issue. We
tried with a clean install of gdb and libdagent on another machine which
did not show any issue. The problem was probably because we tinkered
around the dagent code a bit before using it. All works well now.

> > Also, is it possible to write our own application to control tracing,
> > instead of using GDB? I guess we would need to talk to the agent using
> > the IPA protocol, is that right?
> Tracing control involves two sides, GDB and the agent.  IPA protocol is 
> used to control the agent, however, in order to finish/control tracing, 
> GDB side should be controlled as well.  Your tool can get the trace data 
> from agent, but these data needs GDB interpretation, map the address to 
> a symbol, for example.  I am afraid you can't use your own application 
> to do tracing with agent.
> On the other hand, I am curious on the reasons to write your own tool to 
> control tracing instead of using GDB.  Tracing is interesting to GDB, 
> and you can see how much progress GDB made on tracing in the past 
> several years.  GDB is extensible on both its c code and python script, 
> and you can extend it for your purpose.  Last by not least, 
> contributions are always welcome, and people here are friendly and nice 
> to answer questions, AFAICS.

Indeed, dynamic tracing with GDB is getting more awesome day by day
(this view is reinforced by some tests I ran in-house which really show
how powerful and fast it is) A you know LTTng/UST already has quite fast
static tracing features, so our main aim is to get dynamic tracing
infrastructure of GDB in LTTng/UST for fast dynamic user space tracing
in an elegant way. We are not 100% clear how it shall be achieved at
this moment but we are exploring all avenues for now. At first glance it
looked as if we could  do it using this library coupled with GDB
(controlled through LTTng/UST acting as our tool). Your ideas are
welcome and we surely shall contribute once we get a good knack of how
to extend GDB's functionality for our use.

Suchakra & Simom

Suchakrapani Datt Sharma
Laboratorie DORSAL
École Polytechnique de Montréal

More information about the Gdb mailing list