Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: Simon Marchi <simon.marchi@polymtl.ca>
Cc: Suchakra Sharma <suchakrapani.sharma@polymtl.ca>, <gdb@sourceware.org>
Subject: Re: Debugging agent library
Date: Wed, 08 May 2013 02:16:00 -0000	[thread overview]
Message-ID: <5189B577.6070006@codesourcery.com> (raw)
In-Reply-To: <CAFXXi0mqnd7XQQXFX5mQXF0r8dRn+crsyz8g0uip=svZpm245Q@mail.gmail.com>

On 05/08/2013 02:49 AM, Simon Marchi wrote:
> tstart here gives me the error:
>
> (gdb) tstart
> Target returns error code '.In-process agent library not loaded in
> process.  Fast and static tracepoints unavailable.'
>
> I compiled my small app using (libdagent.so is already in my ld search path):
> $ gcc test.c -Wall -g -ldagent -O0
>
> I run the gdbserver using:
> $ LD_PRELOAD=/usr/local/lib/libdagent.so gdbserver :1234 ./a.out

If libdagent is linked to your program explicitly, LD_PRELOAD is not 
needed any more.  You have to either compile your program without 
-ldagent and use LD_PRELOAD on run or compile your program with -ldagent 
and run your program normally.

>
> Then I use the same commands as you have shown in your example. info
> sharedlibrary shows that the agent is loaded:
>
> (gdb) info sharedlibrary
>  From                To                  Syms Read   Shared Object Library
> 0x00007ffff7dddb00  0x00007ffff7df685b  Yes (*)     /lib64/ld-linux-x86-64.so.2
> 0x00007ffff7bd38c0  0x00007ffff7bd8e38  Yes         /usr/local/lib/libdagent.so
> 0x00007ffff785ba20  0x00007ffff797c72c  Yes (*)     /lib64/libc.so.6
> 0x00007ffff7625660  0x00007ffff7630eb8  Yes (*)     /lib64/libpthread.so.0
>
> Is there something I am missing here?
>

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.

> 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.

-- 
Yao (齐尧)


  reply	other threads:[~2013-05-08  2:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-06 19:21 Suchakra Sharma
     [not found] ` <5188AE42.50308@codesourcery.com>
2013-05-07 18:50   ` Simon Marchi
2013-05-08  2:16     ` Yao Qi [this message]
2013-05-08 19:42       ` Suchakra Sharma
2013-05-09  1:01         ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5189B577.6070006@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=gdb@sourceware.org \
    --cc=simon.marchi@polymtl.ca \
    --cc=suchakrapani.sharma@polymtl.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox