This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: remote debugging


On Mon, 2005-03-14 at 10:19 +0530, B.E.Comp Project wrote:
> Hello,
> 
> i have an executable hello with startup type GRUb on the target
> running upto the initial breakpoint set by the flag
> CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK
> 
> 
> >When you start GDB, tell it the name of your program [binary] and
> >you won't need to do this step.
> 
> 1. when starting GBD how can the name of the program [binary] on remote 
> target be specified ?

Just put the name of the executable on the command line where you 
started GDB:
  # i386-elg-gdb <program>

> 
> 2. Also without doing this step how does the 'Hello, eCos world!' run ?:
> 
> 
> > (gdb) set remotebaud 38400
> > (gdb) target remote /dev/ttyS0
> > Remote debugging using /dev/ttyS0
> > 0x0010bbf0 in ?? ()
> > (gdb) continue
> > Continuing.
> > Hello, eCos world!
> 

The 'load' step assumed that you were running RedBoot on the target.

> 
> 3.
> >Somewhere in there you need to 'load' the application (using
> >GDB's load command which you did not show).
> 
> When loading, what should be running on the target ? 
> 

RedBoot

> 
> 4.
> i tried with target booted through RedBoot.
> 
> On host:
> 
> (gdb) target remote 10.0.0.2:9000
> Remote debugging using 10.0.0.2:9000
> 0x001129f4 in Cyg_Mempool_dlmalloc_Implementation::try_alloc(int)
> (this=0x1146c8, bytes=8)
>     at /opt/curr_ecos/ecos/ecos/packages/services/memalloc/common/current/src/dlmalloc.cxx:1206
> 1206                unlink(victim, bck, fwd);
> Current language:  auto; currently c++
> (gdb)
> 
> 
> Same msg appears when we tried through serial line.
> 
> What does this imply ? 
> 

That your code was linked at the wrong address :-(  [Wrong startup
type - it should be RAM for applications using RedBoot]

> 
> 
> 
> 
> 
> 
> On Sun, 13 Mar 2005 08:54:39 -0700, Gary Thomas <gary@mlbassoc.com> wrote:
> > On Sun, 2005-03-13 at 21:06 +0530, B.E.Comp Project wrote:
> > > Hi,
> > >
> > > I am trying remote debugging, using GDB stubs,
> > > with GRUB as the startup for running a simple application.
> > >
> > > i set the following flags:
> > >
> > > CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
> > > CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
> > > CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK
> > >
> > > Remote debugging msgs are:
> > >
> > > (gdb) set remotebaud 38400
> > > (gdb) target remote /dev/ttyS0
> > > Remote debugging using /dev/ttyS0
> > > 0x0010bbf0 in ?? ()
> > > (gdb) info breakpoints
> > > No breakpoints or watchpoints.
> > > (gdb) break main
> > > No symbol table is loaded.  Use the "file" command.
> > > (gdb) file hello.c
> > > A program is being debugged already.  Kill it? (y or n) n
> > > Program not killed.
> > 
> > When you start GDB, tell it the name of your program [binary] and
> > you won't need to do this step.
> > 
> > > (gdb) continue
> > > Continuing.
> > > Hello, eCos world!
> > >
> > >
> > > 1) Why is the initial breakpoint set by the option
> > > 'CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK' not displayed with command
> > > info breakpoints ?
> > 
> > Because 'info breakpoints' only displays information about the
> > breakpoints that GDB knows about and sets itself.  The initial
> > break that you can configure via CDL merely causes eCos to execute
> > a breakpoint instruction before the application actually starts.
> > GDB doesn't really know about this, but will handle it properly.
> > n.b. it will probably tell you that it ran into an illegal instruction
> > at the startup location, not that it hit a breakpoint.
> > 
> > >
> > > 2) How can other breakpoints be set ?
> > >
> > 
> > Somewhere in there you need to 'load' the application (using
> > GDB's load command which you did not show).
> > 
> > After the application has been loaded, but before you start it
> > up via 'continue', set as many breakpoints as you like.  GDB will
> > stop and report when it hits the first one.  Also, as you experienced,
> > GDB needs to know the symbols for your program before you can set
> > any symbolic breakpoints.  Be sure and specify the program/application
> > on the command line and things will proceed much smoother.
> > 
> > --
> > ------------------------------------------------------------
> > Gary Thomas                 |  Consulting for the
> > MLB Associates              |    Embedded world
> > ------------------------------------------------------------
> > 
> >
> 
-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]